public void GetSetPropertyModifierTest() { AssemblyProperty property = (AssemblyProperty)testClass.typeMembers.Find(item => item.FullName.Contains("Name")); Assert.AreEqual("public ", property.getAccessModifier); Assert.AreEqual("private ", property.setAccessModifier); }
public Data this[AssemblyProperty id] { get { if ((int)id >= (int)Fusion.ASM_NAME.ASM_NAME_MAX_PARAMS) { throw new IndexOutOfRangeException(); } return(new Data(_name.getPropertyData((ASM_NAME)id))); } }
public static string ConvertToString(AssemblyProperty property) { var result = property.Modifier.ToString().ToLower() + " "; if (property.IsVirtual && !property.IsAbstract) { result += "virtual "; } else if (property.IsVirtual && property.IsAbstract) { result += "abstract "; } if (property.IsStatic) { result += "static "; } result += property.ValueType.Name + " "; result += property.Name; result += "{ "; if (property.CanRead) { result += property.GetterModifier.ToString().ToLower() + " get;"; } if (property.CanWrite) { result += property.SetterModifier.ToString().ToLower() + " set;"; } result += " }"; return(result); }
public AssemblyType(Type type) { Name = type.Name; Fields = new List <AssemblyField>(); Properties = new List <AssemblyProperty>(); Methods = new List <AssemblyMethod>(); Constructors = new List <AssemblyConstructor>(); var autoMethods = new List <MethodInfo>(); IsNested = type.IsNested; IsSealed = type.IsSealed; TypeAttributes visibilityMask = type.Attributes & TypeAttributes.VisibilityMask; switch (visibilityMask) { case TypeAttributes.Public: Modifier = AccessModifier.Public; break; case TypeAttributes.NotPublic: Modifier = AccessModifier.Private; break; case TypeAttributes.NestedAssembly: Modifier = AccessModifier.Internal; break; case TypeAttributes.NestedFamily: Modifier = AccessModifier.Protected; break; } TypeAttributes classSemantics = type.Attributes & TypeAttributes.ClassSemanticsMask; switch (classSemantics) { case TypeAttributes.Class: IsAbstract = (type.Attributes & TypeAttributes.Abstract) != 0; IsClass = type.IsClass; if (!IsClass) { IsStructure = true; IsEnum = type.IsEnum; } break; case TypeAttributes.Interface: IsInterface = true; Modifier = AccessModifier.Public; break; } PropertyInfo[] properties = type.GetProperties(BindingFlags); foreach (var property in properties) { var assemblyProperty = new AssemblyProperty(property); autoMethods.AddRange(assemblyProperty.AutoMethods); Properties.Add(assemblyProperty); } FieldInfo[] fields = type.GetFields(BindingFlags); foreach (var field in fields) { if (field.Name.Contains("<")) { continue; } var assemblyField = new AssemblyField(field); Fields.Add(assemblyField); } MethodInfo[] methods = type.GetMethods(BindingFlags); foreach (var methodInfo in methods) { if (!autoMethods.Contains(methodInfo)) { var method = new AssemblyMethod(methodInfo); Methods.Add(method); } } ConstructorInfo[] constructors = type.GetConstructors(BindingFlags); foreach (var constructorInfo in constructors) { var constructor = new AssemblyConstructor(constructorInfo); Constructors.Add(constructor); } }