public static InjectionBuilder <T> MakeBuilder <T>(params MemberInfo[] members) { var builder = new InjectionBuilder <T>(); builder.AddMembers(members); return(builder); }
public void MapOutOfClass() { ((Action)(() => { var builder = new InjectionBuilder <InjectMe>() .Map(e => new OtherClass().Test) .Build(); })).Should().ThrowExactly <ArgumentException>(); }
public void MapMethod() { ((Action)(() => { var builder = new InjectionBuilder <InjectMe>() .Map <InjectMe, Func <int> >(e => e.PublicMethod) .Build(); })).Should().ThrowExactly <ArgumentException>(); }
public void Run() { // make an injector that will automatically inject all `[Inject]`s var injector = new InjectionBuilder <InjectMe>() .MapAttributed() // there's more than just MapAttributed FWIW .Build(); var injectme = new InjectMe(injector, "stringData", 4); Console.WriteLine(injectme.StringData); // will write "stringData" Console.WriteLine(injectme.GetSecretKey()); // will write 4 }
public void MapPublicProperty() { var builder = new InjectionBuilder <InjectMe>() .Map(e => e.PublicProperty) .Build(); var item = new InjectMe(); builder.Inject(item, "test"); item.PublicProperty.Should().Be("test"); }
public void ShouldInject() { var injector = new InjectionBuilder <InjectMe>() .MapAttributed() .Build(); var injectMe = new InjectMe(); injector.Inject(injectMe, new OneImplementor(), new TwoImplementor(), new ThreeImplementor()); injectMe.One.Should().NotBeNull(); injectMe.Two.Should().NotBeNull(); injectMe.Three.Should().NotBeNull(); }