public static IHagarBuilder AddAssembly(this IHagarBuilder builder, Assembly assembly) { var attrs = assembly.GetCustomAttributes <MetadataProviderAttribute>(); foreach (var attr in attrs) { if (!typeof(IConfigurationProvider <SerializerConfiguration>).IsAssignableFrom(attr.ProviderType)) { continue; } builder.AddProvider(sp => (IConfigurationProvider <SerializerConfiguration>)ActivatorUtilities.GetServiceOrCreateInstance(sp, attr.ProviderType)); } return(builder); }
public static IHagarBuilder AddISerializableSupport(this IHagarBuilder builder) { return(((IHagarBuilderImplementation)builder).ConfigureServices(services => services.AddSingleton <IGeneralizedCodec, DotNetSerializableCodec>())); }
public static IHagarBuilder AddProvider(this IHagarBuilder builder, Func <IServiceProvider, IConfigurationProvider <SerializerConfiguration> > factory) => ((IHagarBuilderImplementation)builder).ConfigureServices(services => services.AddTransient(sp => factory(sp)));
public static IHagarBuilder Configure(this IHagarBuilder builder, Action <SerializerConfiguration> configure) => builder.AddProvider(new DelegateConfigurationProvider <SerializerConfiguration>(configure));
public static IHagarBuilder AddProvider(this IHagarBuilder builder, IConfigurationProvider <SerializerConfiguration> provider) => ((IHagarBuilderImplementation)builder).ConfigureServices(services => services.AddSingleton(provider));
protected virtual void Configure(IHagarBuilder builder) { }
protected override void Configure(IHagarBuilder builder) { builder.AddISerializableSupport(); }