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")); }