ProgramingTip

IUnityContainer.Resolve

bestdevel 2020. 10. 20. 07:56
반응형

IUnityContainer.Resolve 유형 변수와 함께 사용할 수 있습니다.


어제 코드를 구현했습니다.

CustomerProductManager productsManager = container.Resolve<CustomerProductManager>();

작동 가능하고 작동했습니다.

오늘 (아마 내가 뭔가를 수정했을 것입니다) 계속해서 오류가 발생합니다.

비 제네릭 메서드 'Microsoft.Practices.Unity.IUnityContainer.Resolve (System.Type, string, params Microsoft.Practices.Unity.ResolverOverride [])'는 형식 인수와 함께 사용할 수 없습니다.

내 동료는 동일한 소스 코드를 가지고 있고 동일한 오류가 없습니다. 왜? 문제를 해결하는 방법?

추신

줄 "using Microsoft.Practices.Unity;" usings 섹션에 있습니다.

일반 버전을 일반 버전이 아닌 버전으로 바꾸려고 시도했습니다.

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

그리고 또 다른 오류가 있습니다.

'Resolve'메서드에 대한 오버로드 없음은 '1'인수를 사용합니다.

어셈블리 중 하나가 참조되지 않을 것입니다. 다음 중 2 개를 참조했습니다. 1. Microsoft.Practices.Unity.dll 2. Microsoft.Practices.ServiceLocation.dll

PPS 성적 문제가 http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205를 브라더스 "버그가 아님"으로 해결되었습니다.

어떤 생각이라도 도움이 될 것입니다


나는 같은 문제가있는 Prism 샘플 코드 파일을 "수정"을 발견했습니다. Unity V2의 dll이 아니더라도 클래스에 Microsoft.Practices.Unity 에 대한 참조를 추가해야합니다.

내 완전한 "사용"섹션은 다음과 가능합니다

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

Container.Resolve에 대한 일반 버전 입니다 Microsoft.Practices.Unity에.


Microsoft는 더 이상 Unity를 소유하지 않고 버전 버전 5에 있고 네임 스페이스는 다음과 가변됩니다.

using Unity;

다음을 사용할 때 사용 섹션에 있는지 확인하십시오.

container.Resolve<T>();

나는이 문제에 직면하는데이 중 어느 것도 나를 돕지 있다고. 시간 오류가 발생했습니다.

Microsoft.Practices.Unity.IUnityContainer의 알 수없는 메서드 RegisterType ()

내 아래 코드.

Container.RegisterType<MyInterface, MyClass>();

IMyInterface클래스에 구현되지 않는 MyClass문제가 발생 한다는 것을 알았습니다 . 그것이 당신을 위해 해결되기를 바랍니다 ...


내 상황에서 클래스는 추상 기본 클래스 에서 상속 된 유니티 래핑되었으며 해당로 기본 클래스 에는 매개 변수가없는 생성자 없습니다 . 기본 클래스에 대해 요청하는 변수가없는 생성 사용 코드를 변경합니다.


제 상황에서는 Bootstrapper가 일반 버전없이 자체적으로 Resolve를 구현하고 있었으므로 Microsoft의 Unity Resolve를 사용할 수 없습니다. 적절한 사용을 추가하면 트릭이 발생했습니다.

참고 URL : https://stackoverflow.com/questions/2875429/iunitycontainer-resolvet-throws-error-claiming-it-cannot-be-used-with-type-par

반응형