有人可以帮助我吗?我正在尝试使用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