有人可以幫助我嗎?我正在嘗試使用Unity IoC進行注射。這裏的代碼:使用Unity IoC容器
IUnityContainer container = new UnityContainer()
.RegisterType<IBaseModel, EmployeeModel>()
.RegisterType<IProxyObjectAdapter, EmployeeProxyObjectAdapter>()
.RegisterType<IAdventureWorksRepository<IProxyObjectAdapter>,AdventureWorksWCFRepository<IProxyObjectAdapter>>();
團結抱怨在最後一行。這裏的錯誤消息:
「AdventureWorksManagement.ServiceAgents.AdventureWorksWCFRepository」 在通用類型或方法不能被用作類型參數「TTO」 「Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType(Microsoft.Practices .Unity.IUnityContainer, params Microsoft.Practices.Unity.InjectionMember [])'。 沒有隱含的引用 轉換 'AdventureWorksManagement.ServiceAgents.AdventureWorksWCFRepository' 到 'AdventureWorksManagement.ServiceAgents.IAdventureWorksRepository'。 C:\我的開發\我的測試 地面\ MyTesting 地面\ AdventureWorksManagement \模型視圖\ EmployeeViewModel.cs 94 33 AdventureWorksManagement
這裏的類定義:
/// <summary>
/// Repository for WCF agents
/// </summary>
public class AdventureWorksWCFRepository<T> : IAdventureWorksRepository<IBaseModel> where T: IProxyObjectAdapter
{
/// <summary>
/// WCF service end
/// </summary>
private readonly AdvWorksManagementService.EmployeeServiceContractClient servicePoint;
/// <summary>
/// Adapter used to translate WCF proxy objects to domain objects
/// </summary>
private T proxyobjectAdapter;
.....
請指點。 dormantroot
chris:以編程方式,我是這樣做的:IAdventureWorksRepository serviceAgent = new AdventureWorksWCFRepository (new EmployeeProxyObjectAdapter());我怎樣才能達到與Unity一致? –
dormantroot
2011-04-28 00:55:36