public void SetSignature( Type?returnType, Type[]?returnTypeRequiredCustomModifiers, Type[]?returnTypeOptionalCustomModifiers, Type[]?parameterTypes, Type[][]?parameterTypeRequiredCustomModifiers, Type[][]?parameterTypeOptionalCustomModifiers) { // We should throw InvalidOperation_MethodBuilderBaked here if the method signature has been baked. // But we cannot because that would be a breaking change from V2. if (m_token != 0) { return; } AssemblyBuilder.CheckContext(returnType); AssemblyBuilder.CheckContext(returnTypeRequiredCustomModifiers, returnTypeOptionalCustomModifiers, parameterTypes); AssemblyBuilder.CheckContext(parameterTypeRequiredCustomModifiers); AssemblyBuilder.CheckContext(parameterTypeOptionalCustomModifiers); ThrowIfGeneric(); if (returnType != null) { m_returnType = returnType; } if (parameterTypes != null) { m_parameterTypes = new Type[parameterTypes.Length]; Array.Copy(parameterTypes, m_parameterTypes, parameterTypes.Length); } m_returnTypeRequiredCustomModifiers = returnTypeRequiredCustomModifiers; m_returnTypeOptionalCustomModifiers = returnTypeOptionalCustomModifiers; m_parameterTypeRequiredCustomModifiers = parameterTypeRequiredCustomModifiers; m_parameterTypeOptionalCustomModifiers = parameterTypeOptionalCustomModifiers; }
public void SetBaseTypeConstraint( [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type?baseTypeConstraint ) { AssemblyBuilder.CheckContext(baseTypeConstraint); m_type.SetParent(baseTypeConstraint); }
public void SetReturnType(Type?returnType) { AssemblyBuilder.CheckContext(returnType); SetSignature(returnType, null, null, null, null, null); }
public void SetParameters(params Type[] parameterTypes) { AssemblyBuilder.CheckContext(parameterTypes); SetSignature(null, null, null, parameterTypes, null, null); }
public void SetInterfaceConstraints(params Type[]?interfaceConstraints) { AssemblyBuilder.CheckContext(interfaceConstraints); m_type.SetInterfaces(interfaceConstraints); }