Beispiel #1
0
 public ConstructorSpec
 (
     IClrElementName DeclaringTypeName,
     ClrAccessKind?AccessLevel                          = null,
     bool IsStatic                                      = false,
     MethodBodySpec Body                                = null,
     CodeDocumentationSpec Documentation                = null,
     ClrCustomMemberIdentifier CustomMember             = null,
     IEnumerable <MethodParameterSpec> MethodParameters = null,
     IEnumerable <AttributionSpec> Attributions         = null,
     ConstructorInvocationSpec BaseInvocation           = null
 )
     : base(
         DeclaringTypeName: DeclaringTypeName,
         Name: new ClrConstructorName(DeclaringTypeName.SimpleName),
         AccessLevel: AccessLevel ?? ClrAccessKind.Public,
         IsStatic: IsStatic,
         IsExtension: false,
         IsAbstract: false,
         IsVirtual: false,
         IsOverride: false,
         IsSealed: false,
         IsPartial: false,
         Body: Body,
         Documentation: Documentation,
         CustomMemberKind: CustomMember,
         MethodParameters: MethodParameters,
         Attributions: Attributions)
 {
     this.BaseInvocation = BaseInvocation;
 }
Beispiel #2
0
 /// <summary>
 /// Defines a field
 /// </summary>
 /// <param name="DeclaringType">The type that declares the field</param>
 /// <param name="FieldName">The name of the field</param>
 /// <param name="FieldType">The field's type</param>
 /// <param name="AccessLevel">The fields visibility</param>
 /// <param name="IsStatic">Specifies whether the field is static</param>
 /// <param name="IsReadOnly">Specifies whether the field is readonly</param>
 /// <param name="Initializer">Specifies the value with which the field is initialized</param>
 /// <returns></returns>
 public static FieldSpec SpecifyField(this ClrClassName DeclaringType, ClrFieldName FieldName,
                                      ClrTypeReference FieldType, ClrAccessKind?AccessLevel = null, bool IsStatic = true,
                                      bool IsReadOnly = true, ConstructorInvocationSpec Initializer = null)
 => new FieldSpec
 (
     DeclaringTypeName: DeclaringType,
     Name: FieldName,
     FieldType: FieldType,
     AccessLevel: AccessLevel ?? ClrAccessKind.Public,
     IsStatic: true,
     IsReadOnly: true,
     Initializer: Initializer != null ? new FieldInitializerSpec(Initializer) : null
 );
Beispiel #3
0
 public FieldInitializerSpec(ConstructorInvocationSpec ConstructorInvocation)
 => this.ConstructorInvocation = ConstructorInvocation;
Beispiel #4
0
 /// <summary>
 /// Defines a <see cref="FieldSpec"/>
 /// </summary>
 /// <typeparam name="T">The field's type</typeparam>
 /// <param name="declaringType">The type that declares the field</param>
 /// <param name="name">The name of the field</param>
 /// <param name="init">The field initializer</param>
 /// <returns></returns>
 public static FieldSpec SpecifyField <T>(this ClrClassName declaringType, string name, ConstructorInvocationSpec init)
 => new FieldSpec(DeclaringTypeName: declaringType, Name: new ClrFieldName(name),
                  FieldType: ClrType.Get <T>().GetReference(), AccessLevel: ClrAccessKind.Public,
                  IsStatic: true, IsReadOnly: true, Initializer: new FieldInitializerSpec(init));