Example #1
0
        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]);
        }
Example #2
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 });
        }