Вы хотели бы посмотреть на RegionNavigationContentLoader.cs в исходном коде PRISM;Вот код, который загружает представление для вас.
protected virtual object CreateNewRegionItem(string candidateTargetContract)
{
object newRegionItem;
try
{
newRegionItem = this.serviceLocator.GetInstance<object>(candidateTargetContract);
}
catch (ActivationException e)
{
throw new InvalidOperationException(
string.Format(CultureInfo.CurrentCulture, Resources.CannotCreateNavigationTarget, candidateTargetContract),
e);
}
return newRegionItem;
}
Существует несколько вспомогательных методов, которые принимают URI, извлекают строку запроса и создают «имя», используемое для поиска вашего представления и его приведения.как объект.
По сути, имя, которое вы используете, чтобы связать ваш конкретный класс как объект с Unity, является тем же, которое вам нужно использовать, когда вы пытаетесь разрешить объект с помощью Unity.Вот какой-то псевдокод для объяснения:
Container.RegisterType<object, ConcreteClass>(typeof(ConcreteClass).FullName);
Locator.GetInstance<object>(UriWithFullName)
Если ничего из этого не помогло, опубликуйте RelativeUriToMyView, чтобы я мог видеть его содержимое.Удачи.