public void validate_wireup_of_generic_attributes_to_strongly_typed_metadata_on_resolve() { // arrange var builder = new ContainerBuilder(); builder.RegisterMetadataRegistrationSources(); builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()) .As<IWeakTypedScenario>() .WithAttributedMetadata(); // act var items = builder.Build().Resolve<IEnumerable<Lazy<IWeakTypedScenario, IWeakTypedScenarioMetadata>>>(); // assert Assert.That(items.Count(), Is.EqualTo(1)); Assert.That(items.Where(p => p.Metadata.Name == "Hello").Count(), Is.EqualTo(1)); }
protected override void Load(ContainerBuilder builder) { // Enables the use of Interface based metadata builder.RegisterMetadataRegistrationSources(); // Enables the use of metadata attributes builder.RegisterModule<AttributedMetadataModule>(); var currentAssembly = System.Reflection.Assembly.GetExecutingAssembly(); #region Register IRuleSpecs currentAssembly.GetTypes() .Where(t => t.GetInterfaces().Contains(typeof(IRuleSpec)) && !t.IsAbstract) .ForEach(specType => { builder.RegisterType(specType).As<IRuleSpec>() .WithAttributeFilter(); }); #endregion #region Register IRuleHandlers currentAssembly.GetTypes() .Where(t => t.GetInterfaces().Contains(typeof(IRuleHandler)) && !t.IsAbstract) .ForEach(handlerType => { builder.RegisterType(handlerType).As<IRuleHandler>() .WithAttributeFilter(); }); #endregion builder.RegisterType<RulesEngine>().As<IRulesEngine>(); }
protected override void Load(ContainerBuilder builder) { builder.RegisterMetadataRegistrationSources(); builder.RegisterType<WeakTypedScenario>().As<IWeakTypedScenario>(); builder.RegisterType<CombinationalWeakTypedScenario>().As<ICombinationalWeakTypedScenario>(); }