//The class is defined like so....
public class CreateNewAccountHandler : ICommandHandler<CreateNewAccountCommand, CreateNewAccountResponse>
{
public CreateNewAccountResponse ExecuteCommand(CreateNewAccountCommand command)
{
throw new NotImplementedException();
}
}
//And here it the code which won't compile
static void RegisterHandlers_Account(IUnityContainer unityContainer)
{
unityContainer.RegisterType
<
ICommandHandler
<
TaskSmart.AppLayer.Api.Commands.Account.CreateNewAccountCommand,
TaskSmart.AppLayer.Api.Commands.Account.CreateNewAccountResponse
>,
TaskSmart.AppLayer.RequestHandlers.Account.CreateNewAccountHandler
>(new TransientLifetimeManager());
}
錯誤1型 「TaskSmart.AppLayer.RequestHandlers.Account.CreateNewAccountHandler」 不能被用作類型參數「TTO」 在通用類型或方法 「Microsoft.Practices.Unity.IUnityContainer。 RegisterType(Microsoft.Practices.Unity.LifetimeManager, params Microsoft.Practices.Unity.InjectionMember [])'。 有從 沒有隱式引用 轉化「TaskSmart.AppLayer.RequestHandlers.Account.CreateNewAccountHandler」 到 「TaskSmart.AppLayer.Api.RequestHandlers.ICommandHandler」。 C:\ DATA \ TaskSmart \ TaskSmart.AppLayer \ UnityBootStrapper.cs 50 6 TaskSmart.AppLayer爲什麼不能編譯此泛型代碼?
我都檢查過很多次,但我只是不明白爲什麼這個拒絕編譯!我甚至完全限定了類/接口名稱,以確保它不是名稱空間問題,並且我得到相同的錯誤。
任何想法?
PS:SVN是在這裏:https://tasksmart.svn.sourceforge.net/svnroot/tasksmart/trunk
你確定你沒有命名空間問題嗎?類似於具有相同名稱但名稱空間不同的類? – 2009-10-18 09:49:24
更新了提到的問題,我試圖完全限定命名空間而沒有成功。 給SVN一個嘗試,它不需要安裝 - 這是完全奇怪的,我只是看不到問題! – 2009-10-18 09:52:14