public PureDtoFactory(EmitTypeFactory factory, Type dtoType) { var unique = Guid.NewGuid(); var typeBldr = factory.CreateClass( $"generatedPureDto_{dtoType.Name}_{unique}", null, dtoType); CreateProperties(factory, dtoType, typeBldr); CreateConstructor(factory, typeBldr); m_constructor = typeBldr.CreateTypeInfo().GetConstructor(new Type[0]); }
public PublicDtoAdapterFactory(EmitTypeFactory factory, Type originalType, Type adapterType) { var unique = Guid.NewGuid(); var typeBldr = factory.CreateClass( $"generatedPublicAdapter_{originalType.Name}_{adapterType.Name}_{unique}", null, adapterType, typeof(IDtoAdapter)); var sourcePropertyName = $"Source_{unique}"; var sourceProperty = factory.AddProperty(typeBldr, sourcePropertyName, originalType); CreateProperties(factory, originalType, adapterType, typeBldr, sourceProperty); CreateConstructor(factory, originalType, typeBldr, sourceProperty); InternalDtoAdapterFactory.CreateIDtoAdapter(factory, typeBldr, sourceProperty); m_constructor = typeBldr.CreateTypeInfo().GetConstructor(new[] { originalType }); }