OKこれで、Ninjectがアセンブリ全体でどのように動作するかについて基本的なギャップがあると思います。誰かが私を助けてくれると願っています。NinjectのMongoDB:リポジトリからの依存関係の解決
私はドメインオブジェクトと私のリポジトリといくつかのサービスを含むCore.dllを参照するasp.net mvcのウェブサイトを持っています。私のドメインオブジェクトは、コンストラクタと、この
public class MyMessage{
private IMyService _myService;
public MyMessage(IMyService myService) {...}
public void Send() { //uses IMyService }
}
私のリポジトリがちょうどIEnumerable<MyMessage>
を返すように見える方法があります。
私のasp.net mcvウェブサイトのコントローラで私はリポジトリを注入しており、 var msg = await myRepository.GetOneAsync(id)
と呼んでいます。私はmsg.send()
に電話したいと思う。
私が直面している問題は、_myService
がオブジェクトがリポジトリから返されるときに常にnullであるということです。
は、リポジトリ myRepositry.Getためのコードは次のようになります
ON情報を追加するように更新:
コレクションIMongoCollection<MyMesage>
ある
public async Task<MyMessage> GetOneAsync(string messageId)
=> await Collection.Find(q => q.Id == messageId).SingleOrDefaultAsync();
。だから本質的にMongo 2.0のC#ドライバが私のためにオブジェクトをシリアライズしていて、Ninjectが依存関係を解決するようには見えません。
私はDependencyResolver.Current.GetService<MyMessage>()
を呼び出すと、オブジェクトがリポジトリ経由で作成されたとき、それは正常に動作しますが、決して。
私は可能なことを達成しようとしていますか?もしそうなら、どうですか?そうでない場合、私の選択肢は何ですか?現時点では、依存関係を作成してMyMessageを解決し、リポジトリが返すものに基づいてそれを解決しています。
おかげで、
レポジトリはどのように実装されていますか? – rexcfnghk
あなたの質問はどこか一種のものであり、実際の情報を提供するものではありません。 「オブジェクトがリポジトリによって作成されたとき」とは、正確には何を意味しますか?リポジトリはどのようにMyMessagesを作成しますか? –
@ErikFunkenbuschが更新され、リポジトリに関する情報が追加されました。それは役に立ちますか? –