From 54e9c9c1126cd9162006eb8ccc39f703a613918b Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Wed, 15 Apr 2020 20:03:28 -0700 Subject: [PATCH 1/2] add ContainerInfo simplify RegionNavigationContentLoader --- .../DryIocContainerExtension.cs | 11 +++- .../UnityContainerExtension.cs | 14 ++++- src/Prism.Core/Ioc/IContainerInfo.cs | 12 ++++ .../Ioc/IContainerInfoExtensions.cs | 20 +++++++ .../Legacy/DryIocBootstrapper.cs | 5 +- src/Wpf/Prism.DryIoc.Wpf/PrismApplication.cs | 7 --- .../DryIocRegionNavigationContentLoader.cs | 42 ------------- .../Legacy/UnityBootstrapper.cs | 3 +- src/Wpf/Prism.Unity.Wpf/PrismApplication.cs | 8 --- .../UnityRegionNavigationContentLoader.cs | 60 ------------------- .../Regions/RegionNavigationContentLoader.cs | 39 ++++++++++-- 11 files changed, 92 insertions(+), 129 deletions(-) create mode 100644 src/Prism.Core/Ioc/IContainerInfo.cs create mode 100644 src/Prism.Core/Ioc/IContainerInfoExtensions.cs delete mode 100644 src/Wpf/Prism.DryIoc.Wpf/Regions/DryIocRegionNavigationContentLoader.cs delete mode 100644 src/Wpf/Prism.Unity.Wpf/Regions/UnityRegionNavigationContentLoader.cs diff --git a/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs b/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs index b475d1373a..2c3e63a459 100644 --- a/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs +++ b/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs @@ -8,7 +8,7 @@ namespace Prism.DryIoc /// /// The Implementation to use with DryIoc /// - public class DryIocContainerExtension : IContainerExtension + public class DryIocContainerExtension : IContainerExtension, IContainerInfo { /// /// The instance of the wrapped container @@ -173,5 +173,14 @@ public bool IsRegistered(Type type, string name) { return Instance.IsRegistered(type, name); } + + Type IContainerInfo.GetRegistrationType(string key) + { + var matchingRegistration = Instance.GetServiceRegistrations().Where(r => key.Equals(r.OptionalServiceKey?.ToString(), StringComparison.Ordinal)).FirstOrDefault(); + if (matchingRegistration.OptionalServiceKey == null) + matchingRegistration = Instance.GetServiceRegistrations().Where(r => key.Equals(r.ImplementationType.Name, StringComparison.Ordinal)).FirstOrDefault(); + + return matchingRegistration.ImplementationType; + } } } diff --git a/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs b/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs index 403f927846..9f625fa0c3 100644 --- a/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs +++ b/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs @@ -9,7 +9,7 @@ namespace Prism.Unity /// /// The Unity implementation of the /// - public class UnityContainerExtension : IContainerExtension + public class UnityContainerExtension : IContainerExtension, IContainerInfo { /// /// The instance of the wrapped container @@ -183,5 +183,17 @@ public bool IsRegistered(Type type, string name) { return Instance.IsRegistered(type, name); } + + Type IContainerInfo.GetRegistrationType(string key) + { + //First try friendly name registration. If not found, try type registration + var matchingRegistration = Instance.Registrations.Where(r => key.Equals(r.Name, StringComparison.Ordinal)).FirstOrDefault(); + if (matchingRegistration == null) + { + matchingRegistration = Instance.Registrations.Where(r => key.Equals(r.RegisteredType.Name, StringComparison.Ordinal)).FirstOrDefault(); + } + + return matchingRegistration?.MappedToType; + } } } diff --git a/src/Prism.Core/Ioc/IContainerInfo.cs b/src/Prism.Core/Ioc/IContainerInfo.cs new file mode 100644 index 0000000000..791e99a346 --- /dev/null +++ b/src/Prism.Core/Ioc/IContainerInfo.cs @@ -0,0 +1,12 @@ +using System; +using System.ComponentModel; + +namespace Prism.Ioc +{ + [EditorBrowsable(EditorBrowsableState.Never)] + public interface IContainerInfo + { + [EditorBrowsable(EditorBrowsableState.Never)] + Type GetRegistrationType(string key); + } +} diff --git a/src/Prism.Core/Ioc/IContainerInfoExtensions.cs b/src/Prism.Core/Ioc/IContainerInfoExtensions.cs new file mode 100644 index 0000000000..3f1f216799 --- /dev/null +++ b/src/Prism.Core/Ioc/IContainerInfoExtensions.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel; + +namespace Prism.Ioc +{ +#pragma warning disable CS1591 // Hidden API + [EditorBrowsable(EditorBrowsableState.Never)] + public static class IContainerInfoExtensions + { + [EditorBrowsable(EditorBrowsableState.Never)] + public static Type GetRegistrationType(this IContainerExtension container, string key) + { + if (container is IContainerInfo ci) + return ci.GetRegistrationType(key); + + return null; + } + } +#pragma warning restore CS1591 // Hidden API +} diff --git a/src/Wpf/Prism.DryIoc.Wpf/Legacy/DryIocBootstrapper.cs b/src/Wpf/Prism.DryIoc.Wpf/Legacy/DryIocBootstrapper.cs index f732e737a5..7a8aa1e5ab 100644 --- a/src/Wpf/Prism.DryIoc.Wpf/Legacy/DryIocBootstrapper.cs +++ b/src/Wpf/Prism.DryIoc.Wpf/Legacy/DryIocBootstrapper.cs @@ -1,8 +1,7 @@ -using System; +using System; using System.Globalization; using DryIoc; using Prism.DryIoc.Properties; -using Prism.DryIoc.Regions; using Prism.Events; using Prism.Ioc; using Prism.Logging; @@ -147,7 +146,7 @@ protected virtual void ConfigureContainer() RegisterTypeIfMissing(false); RegisterTypeIfMissing(false); RegisterTypeIfMissing(false); - RegisterTypeIfMissing(true); + RegisterTypeIfMissing(true); } } diff --git a/src/Wpf/Prism.DryIoc.Wpf/PrismApplication.cs b/src/Wpf/Prism.DryIoc.Wpf/PrismApplication.cs index ed73acdf1e..b0c2e8cbf9 100644 --- a/src/Wpf/Prism.DryIoc.Wpf/PrismApplication.cs +++ b/src/Wpf/Prism.DryIoc.Wpf/PrismApplication.cs @@ -1,6 +1,5 @@ using System; using DryIoc; -using Prism.DryIoc.Regions; using Prism.Ioc; using Prism.Regions; @@ -21,12 +20,6 @@ protected override IContainerExtension CreateContainerExtension() return new DryIocContainerExtension(new Container(CreateContainerRules())); } - protected override void RegisterRequiredTypes(IContainerRegistry containerRegistry) - { - base.RegisterRequiredTypes(containerRegistry); - containerRegistry.RegisterSingleton(); - } - protected override void RegisterFrameworkExceptionTypes() { ExceptionExtensions.RegisterFrameworkExceptionType(typeof(ContainerException)); diff --git a/src/Wpf/Prism.DryIoc.Wpf/Regions/DryIocRegionNavigationContentLoader.cs b/src/Wpf/Prism.DryIoc.Wpf/Regions/DryIocRegionNavigationContentLoader.cs deleted file mode 100644 index a71a8b912f..0000000000 --- a/src/Wpf/Prism.DryIoc.Wpf/Regions/DryIocRegionNavigationContentLoader.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using DryIoc; -using Prism.Ioc; -using Prism.Regions; - -namespace Prism.DryIoc.Regions -{ - public class DryIocRegionNavigationContentLoader : RegionNavigationContentLoader - { - private readonly IContainer _container; - - public DryIocRegionNavigationContentLoader(IContainerExtension containerExtension, IContainer container) : base(containerExtension) - { - _container = container; - } - - protected override IEnumerable GetCandidatesFromRegion(IRegion region, string candidateNavigationContract) - { - if (candidateNavigationContract == null || candidateNavigationContract.Equals(string.Empty)) - throw new ArgumentNullException(nameof(candidateNavigationContract)); - - IEnumerable contractCandidates = base.GetCandidatesFromRegion(region, candidateNavigationContract); - - if (!contractCandidates.Any()) - { - var matchingRegistration = _container.GetServiceRegistrations().Where(r => candidateNavigationContract.Equals(r.OptionalServiceKey?.ToString(), StringComparison.Ordinal)).FirstOrDefault(); - if (matchingRegistration.OptionalServiceKey == null) - matchingRegistration = _container.GetServiceRegistrations().Where(r => candidateNavigationContract.Equals(r.ImplementationType.Name, StringComparison.Ordinal)).FirstOrDefault(); - - if (matchingRegistration.ServiceType == null) - return new object[0]; - - string typeCandidateName = matchingRegistration.ImplementationType.FullName; - contractCandidates = base.GetCandidatesFromRegion(region, typeCandidateName); - } - - return contractCandidates; - } - } -} diff --git a/src/Wpf/Prism.Unity.Wpf/Legacy/UnityBootstrapper.cs b/src/Wpf/Prism.Unity.Wpf/Legacy/UnityBootstrapper.cs index f9e9806c76..d31cf046d6 100644 --- a/src/Wpf/Prism.Unity.Wpf/Legacy/UnityBootstrapper.cs +++ b/src/Wpf/Prism.Unity.Wpf/Legacy/UnityBootstrapper.cs @@ -7,7 +7,6 @@ using Prism.Regions; using Prism.Services.Dialogs; using Prism.Unity.Properties; -using Prism.Unity.Regions; using Unity; using Unity.Lifetime; @@ -143,7 +142,7 @@ protected virtual void ConfigureContainer() RegisterTypeIfMissing(typeof(IRegionNavigationJournalEntry), typeof(RegionNavigationJournalEntry), false); RegisterTypeIfMissing(typeof(IRegionNavigationJournal), typeof(RegionNavigationJournal), false); RegisterTypeIfMissing(typeof(IRegionNavigationService), typeof(RegionNavigationService), false); - RegisterTypeIfMissing(typeof(IRegionNavigationContentLoader), typeof(UnityRegionNavigationContentLoader), true); + RegisterTypeIfMissing(typeof(IRegionNavigationContentLoader), typeof(RegionNavigationContentLoader), true); } } diff --git a/src/Wpf/Prism.Unity.Wpf/PrismApplication.cs b/src/Wpf/Prism.Unity.Wpf/PrismApplication.cs index d477b93bbf..be4c933266 100644 --- a/src/Wpf/Prism.Unity.Wpf/PrismApplication.cs +++ b/src/Wpf/Prism.Unity.Wpf/PrismApplication.cs @@ -1,7 +1,5 @@ using System; using Prism.Ioc; -using Prism.Regions; -using Prism.Unity.Regions; using Unity; namespace Prism.Unity @@ -13,12 +11,6 @@ protected override IContainerExtension CreateContainerExtension() return new UnityContainerExtension(); } - protected override void RegisterRequiredTypes(IContainerRegistry containerRegistry) - { - base.RegisterRequiredTypes(containerRegistry); - containerRegistry.RegisterSingleton(); - } - protected override void RegisterFrameworkExceptionTypes() { ExceptionExtensions.RegisterFrameworkExceptionType(typeof(ResolutionFailedException)); diff --git a/src/Wpf/Prism.Unity.Wpf/Regions/UnityRegionNavigationContentLoader.cs b/src/Wpf/Prism.Unity.Wpf/Regions/UnityRegionNavigationContentLoader.cs deleted file mode 100644 index 42b188ddb7..0000000000 --- a/src/Wpf/Prism.Unity.Wpf/Regions/UnityRegionNavigationContentLoader.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Prism.Ioc; -using Prism.Regions; -using Unity; - -namespace Prism.Unity.Regions -{ - /// - /// Specialization of the default RegionNavigationContentLoader that queries the corresponding - /// to obtain the name of the view's type registered for the contract name. - /// - public class UnityRegionNavigationContentLoader : RegionNavigationContentLoader - { - private IUnityContainer container; - - /// - /// Initializes a new instance of the class. - /// - /// used to create the instance of the view from its . - /// where the views are registered. - public UnityRegionNavigationContentLoader(IContainerExtension containerExtension, IUnityContainer container) - : base(containerExtension) - { - this.container = container; - } - - /// - /// Returns the set of candidates that may satisfiy this navigation request. - /// - /// The region containing items that may satisfy the navigation request. - /// The candidate navigation target. - /// An enumerable of candidate objects from the - protected override IEnumerable GetCandidatesFromRegion(IRegion region, string candidateNavigationContract) - { - if (candidateNavigationContract == null || candidateNavigationContract.Equals(string.Empty)) - throw new ArgumentNullException(nameof(candidateNavigationContract)); - - IEnumerable contractCandidates = base.GetCandidatesFromRegion(region, candidateNavigationContract); - - if (!contractCandidates.Any()) - { - //First try friendly name registration. If not found, try type registration - var matchingRegistration = this.container.Registrations.Where(r => candidateNavigationContract.Equals(r.Name, StringComparison.Ordinal)).FirstOrDefault(); - if (matchingRegistration == null) - { - matchingRegistration = this.container.Registrations.Where(r => candidateNavigationContract.Equals(r.RegisteredType.Name, StringComparison.Ordinal)).FirstOrDefault(); - } - if (matchingRegistration == null) return new object[0]; - - string typeCandidateName = matchingRegistration.MappedToType.FullName; - - contractCandidates = base.GetCandidatesFromRegion(region, typeCandidateName); - } - - return contractCandidates; - } - } -} diff --git a/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs b/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs index 62f9030412..6607e24993 100644 --- a/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs +++ b/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs @@ -15,7 +15,7 @@ namespace Prism.Regions /// public class RegionNavigationContentLoader : IRegionNavigationContentLoader { - private readonly IContainerProvider _container; + private readonly IContainerExtension _container; /// /// Initializes a new instance of the class with a service locator. @@ -127,12 +127,41 @@ protected virtual string GetContractFromNavigationContext(NavigationContext navi /// An enumerable of candidate objects from the protected virtual IEnumerable GetCandidatesFromRegion(IRegion region, string candidateNavigationContract) { - if (region == null) + if (region is null) + { throw new ArgumentNullException(nameof(region)); + } + + if (string.IsNullOrEmpty(candidateNavigationContract)) + { + throw new ArgumentNullException(nameof(candidateNavigationContract)); + } + + var contractCandidates = GetCandidatesFromRegionViews(region, candidateNavigationContract); + + if (!contractCandidates.Any()) + { + var matchingType = _container.GetRegistrationType(candidateNavigationContract); + if (matchingType is null) + { + return Array.Empty(); + } - return region.Views.Where(v => - string.Equals(v.GetType().Name, candidateNavigationContract, StringComparison.Ordinal) || - string.Equals(v.GetType().FullName, candidateNavigationContract, StringComparison.Ordinal)); + return GetCandidatesFromRegionViews(region, matchingType.FullName); + } + + return contractCandidates; + } + + private IEnumerable GetCandidatesFromRegionViews(IRegion region, string candidateNavigationContract) + { + return region.Views.Where(v => ViewIsMatch(v.GetType(), candidateNavigationContract)); + } + + private static bool ViewIsMatch(Type viewType, string navigationSegment) + { + var names = new[] { viewType.Name, viewType.FullName }; + return names.Any(x => x.Equals(navigationSegment, StringComparison.Ordinal)); } } } From 531b8df20de021fb217f310685e69f6d22410361 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Thu, 16 Apr 2020 12:15:42 -0700 Subject: [PATCH 2/2] migrate to internals namespace --- .../DryIocContainerExtension.cs | 1 + .../UnityContainerExtension.cs | 1 + src/Prism.Core/Ioc/IContainerInfo.cs | 12 --------- .../Ioc/IContainerInfoExtensions.cs | 20 -------------- .../Ioc/Internals/IContainerInfo.cs | 20 ++++++++++++++ .../Ioc/Internals/IContainerInfoExtensions.cs | 27 +++++++++++++++++++ .../Regions/RegionNavigationContentLoader.cs | 1 + .../RegionNavigationContentLoaderFixture.cs | 2 +- .../Prism.DryIoc.Wpf.Tests/ContainerHelper.cs | 3 --- .../Prism.Unity.Wpf.Tests/ContainerHelper.cs | 3 --- 10 files changed, 51 insertions(+), 39 deletions(-) delete mode 100644 src/Prism.Core/Ioc/IContainerInfo.cs delete mode 100644 src/Prism.Core/Ioc/IContainerInfoExtensions.cs create mode 100644 src/Prism.Core/Ioc/Internals/IContainerInfo.cs create mode 100644 src/Prism.Core/Ioc/Internals/IContainerInfoExtensions.cs diff --git a/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs b/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs index 2c3e63a459..ddeaf29c31 100644 --- a/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs +++ b/src/Containers/Prism.DryIoc.Shared/DryIocContainerExtension.cs @@ -2,6 +2,7 @@ using System.Linq; using DryIoc; using Prism.Ioc; +using Prism.Ioc.Internals; namespace Prism.DryIoc { diff --git a/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs b/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs index 9f625fa0c3..6b7b099598 100644 --- a/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs +++ b/src/Containers/Prism.Unity.Shared/UnityContainerExtension.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using Prism.Ioc; +using Prism.Ioc.Internals; using Unity; using Unity.Resolution; diff --git a/src/Prism.Core/Ioc/IContainerInfo.cs b/src/Prism.Core/Ioc/IContainerInfo.cs deleted file mode 100644 index 791e99a346..0000000000 --- a/src/Prism.Core/Ioc/IContainerInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.ComponentModel; - -namespace Prism.Ioc -{ - [EditorBrowsable(EditorBrowsableState.Never)] - public interface IContainerInfo - { - [EditorBrowsable(EditorBrowsableState.Never)] - Type GetRegistrationType(string key); - } -} diff --git a/src/Prism.Core/Ioc/IContainerInfoExtensions.cs b/src/Prism.Core/Ioc/IContainerInfoExtensions.cs deleted file mode 100644 index 3f1f216799..0000000000 --- a/src/Prism.Core/Ioc/IContainerInfoExtensions.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.ComponentModel; - -namespace Prism.Ioc -{ -#pragma warning disable CS1591 // Hidden API - [EditorBrowsable(EditorBrowsableState.Never)] - public static class IContainerInfoExtensions - { - [EditorBrowsable(EditorBrowsableState.Never)] - public static Type GetRegistrationType(this IContainerExtension container, string key) - { - if (container is IContainerInfo ci) - return ci.GetRegistrationType(key); - - return null; - } - } -#pragma warning restore CS1591 // Hidden API -} diff --git a/src/Prism.Core/Ioc/Internals/IContainerInfo.cs b/src/Prism.Core/Ioc/Internals/IContainerInfo.cs new file mode 100644 index 0000000000..9b66d7a30f --- /dev/null +++ b/src/Prism.Core/Ioc/Internals/IContainerInfo.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel; + +namespace Prism.Ioc.Internals +{ + /// + /// Used to resolve the registered implementation type for a given key + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public interface IContainerInfo + { + /// + /// Locates the registered implementation for a give key + /// + /// Registration Key + /// Implementation + [EditorBrowsable(EditorBrowsableState.Never)] + Type GetRegistrationType(string key); + } +} diff --git a/src/Prism.Core/Ioc/Internals/IContainerInfoExtensions.cs b/src/Prism.Core/Ioc/Internals/IContainerInfoExtensions.cs new file mode 100644 index 0000000000..f2eaa3cad2 --- /dev/null +++ b/src/Prism.Core/Ioc/Internals/IContainerInfoExtensions.cs @@ -0,0 +1,27 @@ +using System; +using System.ComponentModel; + +namespace Prism.Ioc.Internals +{ + /// + /// Internal extensions to get the registered implementation for Regions + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public static class IContainerInfoExtensions + { + /// + /// Locates the registered implementation for a give key + /// + /// The + /// Registration Key + /// Implementation + [EditorBrowsable(EditorBrowsableState.Never)] + public static Type GetRegistrationType(this IContainerExtension container, string key) + { + if (container is IContainerInfo ci) + return ci.GetRegistrationType(key); + + return null; + } + } +} diff --git a/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs b/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs index 6607e24993..ee811da774 100644 --- a/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs +++ b/src/Wpf/Prism.Wpf/Regions/RegionNavigationContentLoader.cs @@ -5,6 +5,7 @@ using System.Windows; using Prism.Common; using Prism.Ioc; +using Prism.Ioc.Internals; using Prism.Properties; namespace Prism.Regions diff --git a/tests/Wpf/Prism.Container.Wpf.Shared/Fixtures/Regions/RegionNavigationContentLoaderFixture.cs b/tests/Wpf/Prism.Container.Wpf.Shared/Fixtures/Regions/RegionNavigationContentLoaderFixture.cs index a011bd4f6a..9dee4d9a00 100644 --- a/tests/Wpf/Prism.Container.Wpf.Shared/Fixtures/Regions/RegionNavigationContentLoaderFixture.cs +++ b/tests/Wpf/Prism.Container.Wpf.Shared/Fixtures/Regions/RegionNavigationContentLoaderFixture.cs @@ -17,7 +17,7 @@ public RegionNavigationContentLoaderFixture() _container = CreateContainerExtension(); _container.RegisterInstance(_container); _container.Register(); - _container.Register(typeof(IRegionNavigationContentLoader), RegionNavigationContentLoaderType); + _container.Register(typeof(IRegionNavigationContentLoader), typeof(RegionNavigationContentLoader)); _container.Register(); ContainerLocator.ResetContainer(); ContainerLocator.SetContainerExtension(() => _container); diff --git a/tests/Wpf/Prism.DryIoc.Wpf.Tests/ContainerHelper.cs b/tests/Wpf/Prism.DryIoc.Wpf.Tests/ContainerHelper.cs index 555463b481..78bab56911 100644 --- a/tests/Wpf/Prism.DryIoc.Wpf.Tests/ContainerHelper.cs +++ b/tests/Wpf/Prism.DryIoc.Wpf.Tests/ContainerHelper.cs @@ -1,7 +1,6 @@ using System; using DryIoc; using Prism.DryIoc; -using Prism.DryIoc.Regions; using Prism.Ioc; namespace Prism.Container.Wpf.Tests @@ -31,7 +30,5 @@ public static IContainer GetBaseContainer(this IContainerProvider container) => public static Type BaseContainerInterfaceType = typeof(IContainer); public static Type RegisteredFrameworkException = typeof(ContainerException); - - public static Type RegionNavigationContentLoaderType = typeof(DryIocRegionNavigationContentLoader); } } diff --git a/tests/Wpf/Prism.Unity.Wpf.Tests/ContainerHelper.cs b/tests/Wpf/Prism.Unity.Wpf.Tests/ContainerHelper.cs index 7e50b409f5..fb8778baf3 100644 --- a/tests/Wpf/Prism.Unity.Wpf.Tests/ContainerHelper.cs +++ b/tests/Wpf/Prism.Unity.Wpf.Tests/ContainerHelper.cs @@ -1,7 +1,6 @@ using System; using Prism.Ioc; using Prism.Unity; -using Prism.Unity.Regions; using Unity; namespace Prism.Container.Wpf.Tests @@ -27,7 +26,5 @@ public static IUnityContainer GetBaseContainer(this IContainerProvider container public static Type BaseContainerInterfaceType = typeof(IUnityContainer); public static Type RegisteredFrameworkException = typeof(ResolutionFailedException); - - public static Type RegionNavigationContentLoaderType = typeof(UnityRegionNavigationContentLoader); } }