// // Author: // Jb Evain (jbevain@gmail.com) // // Copyright (c) 2008 - 2015 Jb Evain // Copyright (c) 2008 - 2011 Novell, Inc. // // Licensed under the MIT/X11 license. // namespace Mono.Cecil { public enum ResourceType { Linked, Embedded, AssemblyLinked, } public abstract class Resource { string name; uint attributes; public string Name { get { return name; } set { name = value; } } public ManifestResourceAttributes Attributes { get { return (ManifestResourceAttributes) attributes; } set { attributes = (uint) value; } } public abstract ResourceType ResourceType { get; } #region ManifestResourceAttributes public bool IsPublic { get { return attributes.GetMaskedAttributes ((uint) ManifestResourceAttributes.VisibilityMask, (uint) ManifestResourceAttributes.Public); } set { attributes = attributes.SetMaskedAttributes ((uint) ManifestResourceAttributes.VisibilityMask, (uint) ManifestResourceAttributes.Public, value); } } public bool IsPrivate { get { return attributes.GetMaskedAttributes ((uint) ManifestResourceAttributes.VisibilityMask, (uint) ManifestResourceAttributes.Private); } set { attributes = attributes.SetMaskedAttributes ((uint) ManifestResourceAttributes.VisibilityMask, (uint) ManifestResourceAttributes.Private, value); } } #endregion internal Resource (string name, ManifestResourceAttributes attributes) { this.name = name; this.attributes = (uint) attributes; } } }