public EmitFieldBuilder DefineField(string name, EmitType type, EmitVisibility visibility = EmitVisibility.Public, bool isStatic = false, bool isReadonly = false, bool isVolatile = false) { var field = new EmitFieldBuilder(this, name, type, visibility, isStatic, isReadonly); memberBuilders.Add(new EmitFieldReference(() => field)); return field; }
public static MethodAttributes ToMethodAttributes(EmitVisibility visibility, bool isAbstract, bool isSealed, bool isVirtual, bool isExtern, bool isStatic) { MethodAttributes result = 0; switch (visibility) { case EmitVisibility.Public: result |= MethodAttributes.Public; break; case EmitVisibility.Internal: result |= MethodAttributes.Assembly; break; case EmitVisibility.Private: result |= MethodAttributes.Private; break; case EmitVisibility.Protected: result |= MethodAttributes.Family; break; case EmitVisibility.ProtectedInternal: result |= MethodAttributes.FamORAssem; break; } if (isAbstract) result |= MethodAttributes.Abstract; if (isVirtual) result |= MethodAttributes.Virtual; if (isStatic) result |= MethodAttributes.Static; return result; }
public static FieldAttributes ToFieldAttributes(EmitVisibility visibility, bool isStatic, bool isReadonly, bool isVolatile) { FieldAttributes result = 0; switch (visibility) { case EmitVisibility.Public: result |= FieldAttributes.Public; break; case EmitVisibility.Protected: result |= FieldAttributes.Family; break; case EmitVisibility.Private: result |= FieldAttributes.Private; break; case EmitVisibility.Internal: result |= FieldAttributes.Assembly; break; case EmitVisibility.ProtectedInternal: result |= FieldAttributes.FamORAssem; break; } if (isReadonly) result |= FieldAttributes.InitOnly; if (isStatic) result |= FieldAttributes.Static; return result; }
public EmitField(EmitType declaringType, string name, EmitType fieldType, EmitVisibility visibility, bool isStatic, bool isReadOnly) : base(declaringType, name) { FieldType = fieldType; Visibility = visibility; IsStatic = isStatic; IsReadOnly = isReadOnly; }
public EmitFieldBuilder DefineField(string name, EmitType type, EmitVisibility visibility = EmitVisibility.Public, bool isStatic = false, bool isReadonly = false, bool isVolatile = false) { var field = new EmitFieldBuilder(this, name, type, visibility, isStatic, isReadonly); memberBuilders.Add(new EmitFieldReference(() => field)); return(field); }
public EmitMethodBuilder DefineMethod(string name, EmitType returnType, EmitVisibility visibility = EmitVisibility.Public, bool isAbstract = false, bool isSealed = false, bool isVirtual = false, bool isOverride = false, bool isExtern = false, bool isStatic = false) { var method = new EmitMethodBuilder(this, name, returnType, visibility, isStatic, isSealed, isVirtual, isAbstract); memberBuilders.Add(new EmitMethodReference(() => method)); return method; }
public EmitTypeBuilder(EmitAssembly assembly, string ns, string name, EmitTypeKind kind, EmitType declaringType, EmitVisibility visibility, EmitTypeReference baseType, Func <EmitType, IReadOnlyList <EmitTypeReference> > implementedInterfacesFactory, bool isAbstract, bool isSealed ) : base(assembly, ns, name, kind, declaringType, result => ((EmitTypeBuilder)result).memberBuilders = new List <EmitMemberReference>(), visibility, baseType, implementedInterfacesFactory, isAbstract, isSealed) { }
public EmitMethodBuilder DefineMethod(string name, EmitType returnType, EmitVisibility visibility = EmitVisibility.Public, bool isAbstract = false, bool isSealed = false, bool isVirtual = false, bool isOverride = false, bool isExtern = false, bool isStatic = false) { var method = new EmitMethodBuilder(this, name, returnType, visibility, isStatic, isSealed, isVirtual, isAbstract); memberBuilders.Add(new EmitMethodReference(() => method)); return(method); }
public EmitTypeBuilder(EmitAssembly assembly, string ns, string name, EmitTypeKind kind, EmitType declaringType, EmitVisibility visibility, EmitTypeReference baseType, Func<EmitType, IReadOnlyList<EmitTypeReference>> implementedInterfacesFactory, bool isAbstract, bool isSealed ) : base(assembly, ns, name, kind, declaringType, result => ((EmitTypeBuilder)result).memberBuilders = new List<EmitMemberReference>(), visibility, baseType, implementedInterfacesFactory, isAbstract, isSealed) { }
public EmitMethod(EmitType declaringType, string name, EmitType returnType, Func <EmitMethod, IReadOnlyList <EmitParameter> > parameters, EmitVisibility visibility, bool isStatic, bool isSealed, bool isVirtual, bool isAbstract) : base(declaringType, name) { ReturnType = returnType; Parameters = parameters(this); Visibility = visibility; IsStatic = isStatic; IsSealed = isSealed; IsVirtual = isVirtual; IsAbstract = isAbstract; }
public EmitTypeBuilder DefineType(string ns, string name, EmitTypeKind kind = EmitTypeKind.Class, EmitVisibility visibility = EmitVisibility.Public, EmitTypeReference baseType = null, IReadOnlyList<EmitTypeReference> implementedInterfaces = null, bool isAbstract = false, bool isSealed = false) { baseType = baseType ?? typeof(object); var typeBuilder = new EmitTypeBuilder(this, ns, name, kind, null, visibility, baseType, result => implementedInterfaces ?? new List<EmitTypeReference>(), isAbstract, isSealed); typeBuilders.Add(new EmitTypeReference(() => typeBuilder)); return typeBuilder; }
public EmitTypeBuilder DefineType(string ns, string name, EmitTypeKind kind = EmitTypeKind.Class, EmitVisibility visibility = EmitVisibility.Public, EmitTypeReference baseType = null, IReadOnlyList <EmitTypeReference> implementedInterfaces = null, bool isAbstract = false, bool isSealed = false) { baseType = baseType ?? typeof(object); var typeBuilder = new EmitTypeBuilder(this, ns, name, kind, null, visibility, baseType, result => implementedInterfaces ?? new List <EmitTypeReference>(), isAbstract, isSealed); typeBuilders.Add(new EmitTypeReference(() => typeBuilder)); return(typeBuilder); }
public static TypeAttributes ToTypeAttributes(EmitTypeKind kind, EmitVisibility visibility, bool isNested, bool isAbstract, bool isSealed) { TypeAttributes result = 0; switch (kind) { case EmitTypeKind.Class: result |= TypeAttributes.Class; break; case EmitTypeKind.Interface: result |= TypeAttributes.Interface; break; // case EmitTypeKind.Struct: // result |= } switch (visibility) { case EmitVisibility.Public: result |= isNested ? TypeAttributes.NestedPublic : TypeAttributes.Public; break; case EmitVisibility.Internal: result |= isNested ? TypeAttributes.NestedAssembly : TypeAttributes.NotPublic; break; case EmitVisibility.Private: result |= TypeAttributes.NestedPrivate; break; case EmitVisibility.Protected: result |= TypeAttributes.NestedFamily; break; case EmitVisibility.ProtectedInternal: result |= TypeAttributes.NestedFamORAssem; break; } if (isAbstract) { result |= TypeAttributes.Abstract; } if (isSealed) { result |= TypeAttributes.Sealed; } return(result); }
public EmitType(EmitAssembly assembly, string ns, string name, EmitTypeKind kind, EmitType declaringType, Func <EmitType, IReadOnlyList <EmitMemberReference> > membersFactory, EmitVisibility visibility, EmitTypeReference baseType, Func <EmitType, IReadOnlyList <EmitTypeReference> > implementedInterfacesFactory, bool isAbstract, bool isSealed ) : base(declaringType, name) { Assembly = assembly; Namespace = ns; Members = new ReadOnlyListWrapper <EmitMemberReference, EmitMember>(membersFactory(this)); Visibility = visibility; Kind = kind; IsAbstract = isAbstract; IsSealed = isSealed; ImplementedInterfaces = new ReadOnlyListWrapper <EmitTypeReference, EmitType>(implementedInterfacesFactory(this)); this.baseType = baseType; }
public static MethodAttributes ToMethodAttributes(EmitVisibility visibility, bool isAbstract, bool isSealed, bool isVirtual, bool isExtern, bool isStatic) { MethodAttributes result = 0; switch (visibility) { case EmitVisibility.Public: result |= MethodAttributes.Public; break; case EmitVisibility.Internal: result |= MethodAttributes.Assembly; break; case EmitVisibility.Private: result |= MethodAttributes.Private; break; case EmitVisibility.Protected: result |= MethodAttributes.Family; break; case EmitVisibility.ProtectedInternal: result |= MethodAttributes.FamORAssem; break; } if (isAbstract) { result |= MethodAttributes.Abstract; } if (isVirtual) { result |= MethodAttributes.Virtual; } if (isStatic) { result |= MethodAttributes.Static; } return(result); }
public static TypeAttributes ToTypeAttributes(EmitTypeKind kind, EmitVisibility visibility, bool isNested, bool isAbstract, bool isSealed) { TypeAttributes result = 0; switch (kind) { case EmitTypeKind.Class: result |= TypeAttributes.Class; break; case EmitTypeKind.Interface: result |= TypeAttributes.Interface; break; // case EmitTypeKind.Struct: // result |= } switch (visibility) { case EmitVisibility.Public: result |= isNested ? TypeAttributes.NestedPublic : TypeAttributes.Public; break; case EmitVisibility.Internal: result |= isNested ? TypeAttributes.NestedAssembly : TypeAttributes.NotPublic; break; case EmitVisibility.Private: result |= TypeAttributes.NestedPrivate; break; case EmitVisibility.Protected: result |= TypeAttributes.NestedFamily; break; case EmitVisibility.ProtectedInternal: result |= TypeAttributes.NestedFamORAssem; break; } if (isAbstract) result |= TypeAttributes.Abstract; if (isSealed) result |= TypeAttributes.Sealed; return result; }
public static FieldAttributes ToFieldAttributes(EmitVisibility visibility, bool isStatic, bool isReadonly, bool isVolatile) { FieldAttributes result = 0; switch (visibility) { case EmitVisibility.Public: result |= FieldAttributes.Public; break; case EmitVisibility.Protected: result |= FieldAttributes.Family; break; case EmitVisibility.Private: result |= FieldAttributes.Private; break; case EmitVisibility.Internal: result |= FieldAttributes.Assembly; break; case EmitVisibility.ProtectedInternal: result |= FieldAttributes.FamORAssem; break; } if (isReadonly) { result |= FieldAttributes.InitOnly; } if (isStatic) { result |= FieldAttributes.Static; } return(result); }
public EmitConstructorBuilder(EmitType declaringType, EmitVisibility visibility, bool isStatic) : base(declaringType, result => ((EmitConstructorBuilder)result).parameters = new List <EmitParameter>(), visibility, isStatic) { }
public EmitMethodBuilder(EmitType declaringType, string name, EmitType returnType, EmitVisibility visibility, bool isStatic, bool isSealed, bool isVirtual, bool isAbstract) : base(declaringType, name, returnType, result => ((EmitMethodBuilder)result).parameters = new List<EmitParameter>(), visibility, isStatic, isSealed, isVirtual, isAbstract) { }
public EmitFieldBuilder(EmitType declaringType, string name, EmitType fieldType, EmitVisibility visibility, bool isStatic, bool isReadOnly) : base(declaringType, name, fieldType, visibility, isStatic, isReadOnly) { }
public EmitConstructor(EmitType declaringType, Func <EmitConstructor, IReadOnlyList <EmitParameter> > parameters, EmitVisibility visibility, bool isStatic) : base(declaringType, isStatic ? ".cctor" : ".ctor") { Parameters = parameters(this); Visibility = visibility; IsStatic = isStatic; }
public EmitMethodBuilder(EmitType declaringType, string name, EmitType returnType, EmitVisibility visibility, bool isStatic, bool isSealed, bool isVirtual, bool isAbstract) : base(declaringType, name, returnType, result => ((EmitMethodBuilder)result).parameters = new List <EmitParameter>(), visibility, isStatic, isSealed, isVirtual, isAbstract) { }
public EmitConstructorBuilder(EmitType declaringType, EmitVisibility visibility, bool isStatic) : base(declaringType, result => ((EmitConstructorBuilder)result).parameters = new List<EmitParameter>(), visibility, isStatic) { }