【发布时间】:2012-02-06 10:34:39
【问题描述】:
我在使用 Windsor Castle 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。
当我从类 `LocationDao' 中删除 GenericDao<Location> 时
public class LocationDao : ILocationDao
一切正常。所以我想我在注册时做错了。
你能帮帮我吗?
【问题讨论】:
-
@weston 这是GenericDao.cs 的实现,这是LocationDao.cs 的实现。
-
@weston,如果
LocationDao不能实现所有abstract方法,它将无法编译。 -
@svick 是的,对不起,你是对的,忽略我的评论 Christian
标签: c# .net castle-windsor