Вчера я реализовал код:
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, но она разрешена как "не ошибка"
Любая мысль будет полезна
У меня была та же проблема, и я нашел «исправление», просматривая файлы примеров кода 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.