Wiki
Clone wikiHaveBox / Config injection setups
Home - News - Documentation
Given:
#!CSharpLexer <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="FirstWord" value="Hello"/> <add key="SecondWord" value="World"/> </appSettings> </configuration>
#!CSharpLexer namespace HaveBoxExample { public interface IHelloWorldProvider { string GetHelloWorld(); } public class HelloWorldProvider : IHelloWorldProvider { private readonly IKeyValueSet _firstWord; private readonly IKeyValueSet _secondWord; public HelloWorldProvider(IKeyValueSet FirstWord, IKeyValueSet SecondWord) { _firstWord = FirstWord; _secondWord = SecondWord; } public string GetHelloWorld() { return _firstWord.Value + " " + _secondWord.Value; } } }
Manual:
#!CSharpLexer namespace HaveBoxExample { public class HelloWorld { static void Main(string[] args) { var container = new Container(); container.Configure(config => config.MergeConfig<ConfigInjection>()); var firstWord = container.GetInstance<IKeyValueSet>("FirstWord"); var secondWord = container.GetInstance<IKeyValueSet>("SecondWord"); Console.Out.WriteLine(firstWord.Value + " " + secondWord.Value); } } }
Auto:
#!CSharpLexer namespace HaveBoxExample { public class HelloWorld { static void Main(string[] args) { var container = new Container(); container.Configure(config => { config.MergeConfig<ConfigInjection>() config.For<IHelloWorldProvider>().Use<HelloWorldProvider>() }); var helloWorld = container.GetInstance<IHelloWorldProvider>(); Console.Out.WriteLine(helloWorld.GetHelloWorld()); } } }
Updated