public void MethodInjection_Inject_Members_That_Are_Method_With_Filter() { var container = new DependencyInjectionContainer(); container.Configure(c => { c.Export <BasicService>().As <IBasicService>(); c.Export <MethodInjectionClass>().ImportMembers(MembersThat.AreMethod(m => m.Name.StartsWith("Some")), true); }); var instance = container.Locate <MethodInjectionClass>(); Assert.NotNull(instance); Assert.Null(instance.BasicService); Assert.NotNull(instance.SecondService); Assert.IsType <BasicService>(instance.SecondService); }
public void InjectionScopeDiagnostics_ImportMembers_Check_For_Missing_Method_Dependency() { var container = new DependencyInjectionContainer(); container.Configure(c => { c.Export <MethodInjectionClass>().ImportMembers(MembersThat.AreMethod(m => m.Name.StartsWith("Some")), true); }); var diagnostic = container.Locate <InjectionScopeDiagnostics>(); Assert.NotNull(diagnostic); var missingDependencies = diagnostic.PossibleMissingDependencies.ToArray(); Assert.Equal(1, missingDependencies.Length); var dependency = missingDependencies[0]; Assert.Equal("basicService", dependency.MemberName); Assert.Equal(DependencyType.MethodParameter, dependency.DependencyType); Assert.Equal(typeof(IBasicService), dependency.TypeBeingImported); }