예제 #1
0
        private Type TypeFactory()
        {
            var moduleBuilder = ModuleBuilderFactory.Instance;

            var className = string.Format("{0}.{1}", _typeBuilderStrategy.ClassKey(_originalType), _originalType.Name);

            var typeBuilder = moduleBuilder.DefineType(className, _typeAttributes, _parentType, _parentInterfaces.ToArray());

            var provider = new TypeBuilderProvider(typeBuilder);

            _typeBuilderVisitors.ForEach(v => v.Visit(provider));

            return(typeBuilder.CreateType());
        }
예제 #2
0
        private Type TypeFactory()
        {
            var moduleBuilder = ModuleBuilderFactory.Instance;

            var className = string.Format("{0}.{1}", _typeBuilderStrategy.ClassKey(_originalType), _originalType.Name);

            var typeBuilder = moduleBuilder.DefineType(className, _typeAttributes, _parentType, _parentInterfaces.ToArray());

            var provider = new TypeBuilderProvider(typeBuilder);

            _typeBuilderVisitors.ForEach(v => v.Visit(provider));

            return typeBuilder.CreateType();
        }