namespace IoC.Tests.UsageScenarios { using Shouldly; using Xunit; public class Generics { [Fact] public void Run() { // $visible=true // $tag=1 Basics // $priority=01 // $description=Generics // $header=Autowring of generic types via binding of open generic types or generic type markers are working the same way. // { using var container = Container .Create() .Bind().To() // Bind open generic interface to open generic implementation .Bind(typeof(IService<>)).To(typeof(Service<>)) // Or (it is working the same) just bind generic interface to generic implementation, using marker classes TT, TT1, TT2 and so on .Bind>().Tag("just generic").To>() .Container; // Resolve a generic instance using "open generic" binding var instance1 = container.Resolve>(); // Resolve a generic instance using "just generic" binding var instance2 = container.Resolve>("just generic".AsTag()); // } // Check each instance instance1.ShouldBeOfType>(); instance2.ShouldBeOfType>(); } } }