1
Windsor Castle 2.5を使用して一般的なインターフェイス/クラスを解決する際に問題があります。私はILocationDao
Castle Windsorでジェネリックスを解決する
var i = c.Resolve<ILocationDao>();
を解決しようとしているときは、登録のために
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>());
今すぐ次のコード行を使用しています:私は、次のクラスおよびインタフェースを持っています戻り値はCastle.Proxies.ILocationDaoProxy
で、LocationDao
にキャストできません。
私はクラスからGenericDao<Location>
を削除すると、 `LocationDao」
public class LocationDao : ILocationDao
すべてが正常に動作します。だから私は登録に何か間違っていると思う。
私を助けてもらえますか?
@westonこれは[GenericDao.cs](http://pastebin.com/ZTnCfaMM)の実装であり、実装は[LocationDao.cs](http://pastebin.com/BcsC1ePR)です。 –
@ weston 'LocationDao'がすべての' abstract'メソッドを実装しなければ、コンパイルに失敗します。 – svick
@svickはい申し訳ありませんが、私のコメントを無視クリスチャン – weston