public MyPropertyInfo(PropertyDefinition propertyDefinition, MyClassInfo declaringType) : base() { this.name = propertyDefinition.Name; string[] readableForms = Tools.GetHumanReadableForms(propertyDefinition.PropertyType); this.typeFullName = readableForms[0]; this.typeFullNameWithoutRevArrayStrings = readableForms[1]; this.declaringType = declaringType; MethodDefinition getterInfo = propertyDefinition.GetMethod; MethodDefinition setterInfo = propertyDefinition.SetMethod; this.hasGetter = getterInfo != null; this.hasSetter = setterInfo != null; MethodDefinition getterOrSetterInfo = getterInfo != null ? getterInfo : setterInfo; Debug.Assert(getterOrSetterInfo != null, "Impossible! Property must have either getter or setter or both."); this.attributes = GetMyPropertyAttributes(propertyDefinition); this.underlyingMethodsAttributes = GetMyInvokableMemberAttributes(getterOrSetterInfo); this.parametersNames = new List<string>(); this.parameters = new Dictionary<string, MyParameterInfo>(); this.exceptionsDescrs = new List<ExceptionDescr>(); AddParameters(getterInfo, setterInfo); this.CheckSupport(propertyDefinition.Attributes, getterOrSetterInfo.Attributes); }
public MyPropertyInfo(PropertyDefinition propertyDefinition, MyClassInfo declaringType) : base() { this.name = propertyDefinition.Name; string[] readableForms = Tools.GetHumanReadableForms(propertyDefinition.PropertyType); this.typeFullName = readableForms[0]; this.typeFullNameWithoutRevArrayStrings = readableForms[1]; this.declaringType = declaringType; MethodDefinition getterInfo = propertyDefinition.GetMethod; MethodDefinition setterInfo = propertyDefinition.SetMethod; this.hasGetter = getterInfo != null; this.hasSetter = setterInfo != null; MethodDefinition getterOrSetterInfo = getterInfo != null ? getterInfo : setterInfo; Debug.Assert(getterOrSetterInfo != null, "Impossible! Property must have either getter or setter or both."); this.attributes = GetMyPropertyAttributes(propertyDefinition); this.underlyingMethodsAttributes = GetMyInvokableMemberAttributes(getterOrSetterInfo); this.parametersNames = new List <string>(); this.parameters = new Dictionary <string, MyParameterInfo>(); this.exceptionsDescrs = new List <ExceptionDescr>(); AddParameters(getterInfo, setterInfo); this.CheckSupport(propertyDefinition.Attributes, getterOrSetterInfo.Attributes); }
/// <summary> /// Returns the string representing attributes contained in the given enumeration. /// </summary> /// <remarks> /// If the invokable member was marked virtual and sealed then this method will omit both of these attributes /// (beacuse it's not virtual anymore and the sealed modifier is then meaningless). /// </remarks> /// <param name="myInvokableMemberAttributes">Enumeration of MyInvokableMemberAttributes.</param> /// <returns>String representing attributes contained in the given enumeration.</returns> public static string MyInvokableMemberAttributesToString(MyInvokableMemberAttributes myInvokableMemberAttributes) { StringBuilder sb = new StringBuilder(); if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Public) != 0) { sb.Append("public "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Private) != 0) { sb.Append("private "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Protected) != 0 && ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Internal) != 0)) { sb.Append("protected internal "); } else if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Protected) != 0) { sb.Append("protected "); } else if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Internal) != 0) { sb.Append("internal "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Static) != 0) { sb.Append("static "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Extern) != 0) { sb.Append("extern "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Abstract) != 0) { sb.Append("abstract "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Virtual) != 0) { sb.Append("virtual "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Override) != 0) { sb.Append("override "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Sealed) != 0) { sb.Append("sealed "); } if (sb.Length > 0) { sb.Length = sb.Length - 1; } return(sb.ToString()); }
protected MyInvokableMemberInfo(MethodDefinition methodDefinition, MyClassInfo declaringType) { this.attributes = GetMyInvokableMemberAttributes(methodDefinition); this.declaringType = declaringType; this.summary = String.Empty; this.parametersNames = new List <string>(); this.parameters = new Dictionary <string, MyParameterInfo>(); this.exceptionsDescrs = new List <ExceptionDescr>(); }
protected MyInvokableMemberInfo(MethodDefinition methodDefinition, MyClassInfo declaringType) { this.attributes = GetMyInvokableMemberAttributes(methodDefinition); this.declaringType = declaringType; this.summary = String.Empty; this.parametersNames = new List<string>(); this.parameters = new Dictionary<string, MyParameterInfo>(); this.exceptionsDescrs = new List<ExceptionDescr>(); }
public MyEventInfo(EventDefinition eventDefinition, MyClassInfo declaringType) : base() { this.name = eventDefinition.Name; string[] readableForms = Tools.GetHumanReadableForms(eventDefinition.EventType); this.typeFullName = readableForms[0]; this.typeFullNameWithoutRevArrayStrings = readableForms[1]; this.declaringType = declaringType; MethodDefinition adderInfo = eventDefinition.AddMethod; Debug.Assert(adderInfo != null, "Impossible! add_Event() must have been generated."); this.attributes = GetMyEventAttributes(eventDefinition); this.underlyingMethodsAttributes = GetMyInvokableMemberAttributes(adderInfo); this.CheckSupport(eventDefinition, adderInfo.Attributes); }
public MyEventInfo(EventDefinition eventDefinition, MyClassInfo declaringType) : base() { this.name = eventDefinition.Name; string[] readableForms = Tools.GetHumanReadableForms(eventDefinition.EventType); this.typeFullName = readableForms[0]; this.typeFullNameWithoutRevArrayStrings = readableForms[1]; this.declaringType = declaringType; MethodDefinition adderInfo = eventDefinition.AddMethod; Debug.Assert(adderInfo != null, "Impossible! add_Event() must have been generated."); this.attributes = GetMyEventAttributes(eventDefinition); this.underlyingMethodsAttributes = GetMyInvokableMemberAttributes(adderInfo); this.CheckSupport(eventDefinition, adderInfo.Attributes); }
public static MyInvokableMemberAttributes GetMyInvokableMemberAttributes(MethodDefinition methodDefinition) { MyInvokableMemberAttributes myInvokableMemberAttributes = MyInvokableMemberAttributes.None; if (methodDefinition.IsAbstract) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Abstract; } if (methodDefinition.IsAssembly) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Internal; } if (methodDefinition.IsFamily) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Protected; } if (methodDefinition.IsFamilyOrAssembly) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Protected | MyInvokableMemberAttributes.Internal; } if (methodDefinition.IsPrivate) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Private; } if (methodDefinition.IsPublic) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Public; } if (methodDefinition.IsStatic) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Static; } if ((methodDefinition.Attributes & MethodAttributes.PInvokeImpl) != 0) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Extern; } if ((methodDefinition.Attributes & MethodAttributes.NewSlot) == MethodAttributes.NewSlot) { Debug.Assert((methodDefinition.Attributes & MethodAttributes.Virtual) == MethodAttributes.Virtual, "Impossible! If invokable member has NewSlot attribute then it has to have Virtual attribute also."); if ((methodDefinition.Attributes & MethodAttributes.Final) == 0 && (methodDefinition.Attributes & MethodAttributes.Abstract) == 0) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Virtual; } } else { if ((methodDefinition.Attributes & MethodAttributes.Virtual) == MethodAttributes.Virtual) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Override; } if ((methodDefinition.Attributes & MethodAttributes.Final) == MethodAttributes.Final) { myInvokableMemberAttributes |= MyInvokableMemberAttributes.Sealed; } } return(myInvokableMemberAttributes); }
private static string MyPropertyAndMyInvokableMemberAttributesToString(MyPropertyAttributes myPropertyAttributes, MyInvokableMemberAttributes myInvokableMemberAttributes) { // for now only MyInvokableMemberInfo attributes return MyInvokableMemberInfo.MyInvokableMemberAttributesToString(myInvokableMemberAttributes); }
/// <summary> /// Returns the string representing attributes contained in the given enumeration. /// </summary> /// <remarks> /// If the invokable member was marked virtual and sealed then this method will omit both of these attributes /// (beacuse it's not virtual anymore and the sealed modifier is then meaningless). /// </remarks> /// <param name="myInvokableMemberAttributes">Enumeration of MyInvokableMemberAttributes.</param> /// <returns>String representing attributes contained in the given enumeration.</returns> public static string MyInvokableMemberAttributesToString(MyInvokableMemberAttributes myInvokableMemberAttributes) { StringBuilder sb = new StringBuilder(); if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Public) != 0) { sb.Append("public "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Private) != 0) { sb.Append("private "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Protected) != 0 && ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Internal) != 0)) { sb.Append("protected internal "); } else if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Protected) != 0) { sb.Append("protected "); } else if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Internal) != 0) { sb.Append("internal "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Static) != 0) { sb.Append("static "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Extern) != 0) { sb.Append("extern "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Abstract) != 0) { sb.Append("abstract "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Virtual) != 0) { sb.Append("virtual "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Override) != 0) { sb.Append("override "); } if ((myInvokableMemberAttributes & MyInvokableMemberAttributes.Sealed) != 0) { sb.Append("sealed "); } if (sb.Length > 0) { sb.Length = sb.Length - 1; } return sb.ToString(); }
private static string MyEventAndMyInvokableMemberAttributesToString(MyEventAttributes myEventAttributes, MyInvokableMemberAttributes myInvokableMemberAttributes) { // for now only MyInvokableMemberInfo attributes return(MyInvokableMemberInfo.MyInvokableMemberAttributesToString(myInvokableMemberAttributes)); }