public void CreatesTypeWhenDynamicConstructorIsAvailable() { var serviceLocator = new ServiceLocator(); var noTagDependency = new DummyDependency { Value = "no tag" }; var tagDependency = new DummyDependency { Value = "tag" }; serviceLocator.RegisterType <IDispatcherService, DispatcherService>(); serviceLocator.RegisterType <IMessageService, MessageService>(); serviceLocator.RegisterType <INavigationService, NavigationService>(); serviceLocator.RegisterType <INavigationRootService, NavigationRootService>(); serviceLocator.RegisterType <ILanguageService, LanguageService>(); serviceLocator.RegisterInstance <IDummyDependency>(noTagDependency); serviceLocator.RegisterInstance <IDummyDependency>(tagDependency, "tag"); var typeFactory = serviceLocator.ResolveType <ITypeFactory>(); var instance = typeFactory.CreateInstanceWithParametersAndAutoCompletionWithTag <AdvancedDependencyInjectionTestClass>("tag", "string", 42, 42L); Assert.IsNotNull(instance); Assert.AreEqual("string", instance.StringValue); Assert.AreEqual(42, instance.IntValue); Assert.AreEqual(42L, instance.LongValue); Assert.IsTrue(ReferenceEquals(tagDependency, instance.Dependency)); }
public DummyConverter(DummyDependency dependency) { if (dependency == null) { throw new ArgumentNullException(nameof(dependency)); } _dependency = dependency; }
public void ResolvesUsingPreferredTagAndDataContext() { var serviceLocator = new ServiceLocator(); var noTagDependency = new DummyDependency { Value = "no tag" }; var tagDependency = new DummyDependency { Value = "tag" }; serviceLocator.RegisterInstance <IDummyDependency>(noTagDependency); serviceLocator.RegisterInstance <IDummyDependency>(tagDependency, "tag"); var typeFactory = serviceLocator.ResolveType <ITypeFactory>(); var viewModelFactory = new ViewModelFactory(typeFactory, serviceLocator); var viewModel = viewModelFactory.CreateViewModel <TestClasses.ViewModelFactoryTestViewModel>(5, "tag"); Assert.IsTrue(ReferenceEquals(tagDependency, viewModel.Dependency)); }
public void ResolvesUsingPreferredTagAndDataContext() { var serviceLocator = new ServiceLocator(); var noTagDependency = new DummyDependency { Value = "no tag" }; var tagDependency = new DummyDependency { Value = "tag" }; serviceLocator.RegisterInstance<IDummyDependency>(noTagDependency); serviceLocator.RegisterInstance<IDummyDependency>(tagDependency, "tag"); var typeFactory = serviceLocator.ResolveType<ITypeFactory>(); var viewModelFactory = new ViewModelFactory(typeFactory); var viewModel = viewModelFactory.CreateViewModel<TestViewModel>(5, "tag"); Assert.IsTrue(ReferenceEquals(tagDependency, viewModel.Dependency)); }
public void CreatesTypeWhenDynamicConstructorIsAvailable() { var serviceLocator = new ServiceLocator(); var noTagDependency = new DummyDependency { Value = "no tag" }; var tagDependency = new DummyDependency { Value = "tag" }; serviceLocator.RegisterType<IDispatcherService, DispatcherService>(); serviceLocator.RegisterType<IMessageService, MessageService>(); serviceLocator.RegisterType<INavigationService, NavigationService>(); serviceLocator.RegisterType<INavigationRootService, NavigationRootService>(); serviceLocator.RegisterInstance<IDummyDependency>(noTagDependency); serviceLocator.RegisterInstance<IDummyDependency>(tagDependency, "tag"); var typeFactory = serviceLocator.ResolveType<ITypeFactory>(); var instance = typeFactory.CreateInstanceWithParametersAndAutoCompletionWithTag<AdvancedDependencyInjectionTestClass>("tag", "string", 42, 42L); Assert.IsNotNull(instance); Assert.AreEqual("string", instance.StringValue); Assert.AreEqual(42, instance.IntValue); Assert.AreEqual(42L, instance.LongValue); Assert.IsTrue(ReferenceEquals(tagDependency, instance.Dependency)); }