public static MutableType AddNestedType( this MutableType mutableType, string name = null, TypeAttributes attributes = TypeAttributes.NestedPublic, Type baseType = null) { name = name ?? "NestedType_" + ++s_counter; baseType = baseType ?? typeof(object); return(mutableType.AddNestedType(name, attributes, baseType)); }
private MutableType CreateNextCallProxyType(MutableType concreteTarget, TargetClassDefinition targetClassDefinition) { var attributes = TypeAttributes.NestedPublic | TypeAttributes.Sealed; var nextCallProxy = concreteTarget.AddNestedType("NextCallProxy", attributes, typeof(object)); AddRequiredInterfaces(nextCallProxy, targetClassDefinition); return(nextCallProxy); }
public static OverrideInterfaceGenerator CreateNestedGenerator(MutableType outerType, string typeName) { ArgumentUtility.CheckNotNull("outerType", outerType); ArgumentUtility.CheckNotNullOrEmpty("typeName", typeName); var interfaceType = outerType.AddNestedType(typeName, TypeAttributes.Interface | TypeAttributes.NestedPublic | TypeAttributes.Abstract, null); return(new OverrideInterfaceGenerator(interfaceType)); }
public void CreateNestedTypeGenerators() { var nestedType = _mutableType.AddNestedType(); PopulateContext(_generator, 1); var nestedCodeGeneratorStub = new Mock <IMutableTypeCodeGenerator>(); _nestedTypeCodeGeneratorFactoryMock.Setup(mock => mock.Create(_typeBuilderMock.Object, nestedType)).Returns(nestedCodeGeneratorStub.Object).Verifiable(); var result = _generator.CreateNestedTypeGenerators().ForceEnumeration(); _nestedTypeCodeGeneratorFactoryMock.Verify(); Assert.That(result, Is.EqualTo(new[] { nestedCodeGeneratorStub.Object })); }
public void CreateNestedTypeGenerators() { var nestedType = _mutableType.AddNestedType(); PopulateContext(_generator, 1); var nestedCodeGeneratorStub = _mockRepository.Stub <IMutableTypeCodeGenerator>(); _nestedTypeCodeGeneratorFactoryMock.Expect(mock => mock.Create(_typeBuilderMock, nestedType)).Return(nestedCodeGeneratorStub); _mockRepository.ReplayAll(); var result = _generator.CreateNestedTypeGenerators().ForceEnumeration(); _mockRepository.VerifyAll(); Assert.That(result, Is.EqualTo(new[] { nestedCodeGeneratorStub })); }