IUnityContainer. Твердость <T> бросает ошибку, утверждая, что она не может использоваться с параметрами типа

Вчера я реализовал код:

CustomerProductManager productsManager = container.Resolve();

Это было компилируемым и рабочим.

Сегодня (вероятно, я изменил что-то), я постоянно получаю ошибку:

Необщий метод 'Microsoft. Методы. Единица. IUnityContainer. Твердость (Система. Введите, представьте в виде строки, параметрические усилители Microsoft. Методы. Единица. ResolverOverride [])', не может использоваться с аргументами типа

Мой коллега имеет тот же исходный код и не имеет той же ошибки. Почему? Как разрешить проблему?

P.S.

строка "использование Microsoft. Методы. Единица"; присутствует в разделе использований.

Я попытался заменить универсальную версию неуниверсальной:

CustomerProductManager productsManager = (CustomerProductManager)container.Resolve(typeof(CustomerProductManager));

И получил другую ошибку:

Никакая перегрузка для метода 'Твердость' не берет '1' аргументы

Кажется, что на один из блоков не ссылаются.. но который? У меня есть 2 из них ссылаемый: 1. Microsoft.Practices.Unity.dll 2. Microsoft.Practices.ServiceLocation.dll

P.P.S. Я имею, видел подобную проблему http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205, но она разрешена как "не ошибка"

Любая мысль будет полезна

74
задан Dan J 23 June 2011 в 15:57
поделиться

1 ответ

У меня была та же проблема, и я нашел «исправление», просматривая файлы примеров кода Prism. Похоже, даже если это не dll в Unity V2, вам нужно добавить ссылку в своем классе на: Microsoft.Practices.Unity

мой полный раздел «Использование» выглядит следующим образом

using System;
using System.Windows;
using Microsoft.Practices.Composite.Modularity;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Composite.UnityExtensions;

Я не уверен, используете ли вы Silverlight, но общая версия для Container.Resolve IS в Microsoft.Practices.Unity.

173
ответ дан 24 November 2019 в 11:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: