좋아, 그래서 누군가가 나를 도울 수 있기를 희망하는 어셈블리에서 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이라는 것입니다.
는 REPOSITORY myRepositry.Get의 코드는 다음과 같습니다
에 대한 정보를 추가하는 업데이트 :
컬렉션은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
귀하의 질문은 모든 곳에서 일종의 일종이며, 실제 정보를 제공하지는 않습니다. "저장소가 객체를 생성 할 때"정확히 무엇을 의미합니까? 저장소가 MyMessage를 어떻게 만듭니 까? –
@ErikFunkenbusch가 업데이트되어 일부 정보가 저장소에 추가되었습니다. 그게 도움이 되니? –