Exemple #1
0
        public void Visit(ITypeBuilderProvider provider)
        {
            var typeBuilder = provider.GetTypeBuilder();

            PropertyBuilder propertyBuilder = typeBuilder.DefineProperty(_propertyInfo.Name, PropertyAttributes.HasDefault,
                                                                         _propertyInfo.PropertyType, null);

            AddGetter(typeBuilder, propertyBuilder);
            AddSetter(typeBuilder, propertyBuilder);
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var typeBuilder = provider.GetTypeBuilder();

            PropertyBuilder propertyBuilder = typeBuilder.DefineProperty(_propertyInfo.Name, PropertyAttributes.HasDefault,
                                                                         _propertyInfo.PropertyType, null);

            AddGetter(typeBuilder, propertyBuilder);
            AddSetter(typeBuilder, propertyBuilder);
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var tb = provider.GetTypeBuilder();

            tb.AddInterfaceImplementation(typeof(IHypermediaApiControllerConfigurator));

            var mb = tb.DefineMethod("ConfigureHypermedia", MethodAttributes.Public | MethodAttributes.Virtual, null, new Type[] { typeof(HttpConfiguration) });

            var il = mb.GetILGenerator();

            il.Emit(OpCodes.Ret);

            tb.DefineMethodOverride(mb, typeof(IHypermediaApiControllerConfigurator).GetMethod("ConfigureHypermedia"));
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var typeBuilder = provider.GetTypeBuilder();

            var aggregateField = typeBuilder.DefineField(_fieldName, _aggregateType, FieldAttributes.Private);

            _aggregatedProperties.ForEach(prop =>
            {
                var agregatedProperty = (prop as IAggregatedProperty);

                if (agregatedProperty != null)
                    agregatedProperty.SetAggregatedProperty(aggregateField);

                prop.Visit(provider);
            });
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var typeBuilder = provider.GetTypeBuilder();

            FieldBuilder fieldBuilder = typeBuilder.DefineField(PropertyFieldName(_propertyName),
                                                                 _propertyType, FieldAttributes.Private);

            PropertyBuilder propertyBuilder = typeBuilder.DefineProperty(_propertyName, PropertyAttributes.HasDefault,
                                                                         _propertyType, null);

            if (_customAttributes != null)
                _customAttributes.ForEach(factory => propertyBuilder.SetCustomAttribute(factory()));

            AddGetter(typeBuilder, fieldBuilder, propertyBuilder);

            AddSetter(typeBuilder, fieldBuilder, propertyBuilder);
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var typeBuilder = provider.GetTypeBuilder();

            var aggregateField = typeBuilder.DefineField(_fieldName, _aggregateType, FieldAttributes.Private);

            _aggregatedProperties.ForEach(prop =>
            {
                var agregatedProperty = (prop as IAggregatedProperty);

                if (agregatedProperty != null)
                {
                    agregatedProperty.SetAggregatedProperty(aggregateField);
                }

                prop.Visit(provider);
            });
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var typeBuilder = provider.GetTypeBuilder();

            FieldBuilder fieldBuilder = typeBuilder.DefineField(PropertyFieldName(_propertyName),
                                                                _propertyType, FieldAttributes.Private);

            PropertyBuilder propertyBuilder = typeBuilder.DefineProperty(_propertyName, PropertyAttributes.HasDefault,
                                                                         _propertyType, null);

            if (_customAttributes != null)
            {
                _customAttributes.ForEach(factory => propertyBuilder.SetCustomAttribute(factory()));
            }

            AddGetter(typeBuilder, fieldBuilder, propertyBuilder);

            AddSetter(typeBuilder, fieldBuilder, propertyBuilder);
        }
        public void Visit(ITypeBuilderProvider provider)
        {
            var tb = provider.GetTypeBuilder();

            tb.AddInterfaceImplementation(typeof(IHypermediaApiControllerConfigurator));

            var mb = tb.DefineMethod("ConfigureHypermedia", MethodAttributes.Public | MethodAttributes.Virtual, null, new Type[] {typeof(HttpConfiguration)});

            var il = mb.GetILGenerator();

            il.Emit(OpCodes.Ret);

            tb.DefineMethodOverride(mb, typeof(IHypermediaApiControllerConfigurator).GetMethod("ConfigureHypermedia"));
        }