1
我在使用溫莎城堡2.5解決通用接口/類問題。我有以下類和接口:解決與溫莎城堡的仿製藥
public interface IGenericDao<T> : IDao
public abstract class GenericDao<T> : IGenericDao<T> where T:class, new()
public class LocationDao : GenericDao<Location>, ILocationDao
對於註冊我使用下面的代碼行
c.Register(
Component.For(typeof(IGenericDao<>))
.ImplementedBy(typeof(GenericDao<>)));
c.Register(Component.For<ILocationDao>().ImplementedBy<LocationDao>());
現在,當我試圖解決ILocationDao
var i = c.Resolve<ILocationDao>();
返回值是Castle.Proxies.ILocationDaoProxy
,我無法將其轉換爲LocationDao
。
當我從類中刪除GenericDao<Location>
'LocationDao」
public class LocationDao : ILocationDao
一切工作正常。所以我猜想我在註冊時做錯了什麼。
你能幫我嗎?
@weston這是[GenericDao.cs](http://pastebin.com/ZTnCfaMM)的實現,這裏是它的實現[LocationDao.cs](http://pastebin.com/BcsC1ePR)。 – 2012-02-06 11:09:34
@weston,如果'LocationDao'不能實現所有的'abstract'方法,它將無法編譯。 – svick 2012-02-06 11:46:58
@svick對不起,你是對的,不理我的評論基督徒 – weston 2012-02-06 11:51:09