2012-03-26 5 views
1

저는 MVC3 프로젝트에 있는데, 제 dependecy 인젝션을 위해 snapmapmap을 사용하고 있습니다. 내가 컨트롤러에있는 것처럼 DI를 구현할 수없는 곳에서 SignalR을 사용하기 시작한 경우를 제외하면 모든 것이 제자리에있었습니다. 나는 지금 SignalR에서 구조 맵 DI를 구현하는 것에 대해 검색 해왔다. 그러나 이것을 수행하는 방법에 대한 강력한 샘플을 찾지 못했다. SignalR을 사용하는 모든 사람들이 Ninject를 사용하고있는 것처럼 보입니다.내 mvc3 컨트롤러에서 SignalR의 IConnectionManager를 호출해도 괜찮습니까?

내 목표는 내 클라이언트 메소드를 호출하기 전에 내 허브 안에 조건문 (서비스를 삽입해야 함)을 사용하는 것입니다. 그러나 이것에 대해서는 성공하지 못했습니다.

IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>(); 
dynamic clients = connectionManager.GetClients<MyHub>(); 
clients.myClientScript(); 

이를 :

나는 다른 방법을 연구 그래서이 일이 내 개발을 지연하고 싶지 않았다, 나는 내가 실제로 다음과 같은 코드를 사용하여 내 컨트롤러에서 내 클라이언트의 메소드를 호출 할 수 있다는 것을 발견 나를 위해 작동하지만 좋은 접근 방법인지 확실하지 않습니다. 특히 의존성 주입을 사용하고 있습니다.

제 질문은 다음과 같습니다. 내 컨트롤러에서 계속 호출하는 것이 좋습니까? 더 나은 접근 방법이 있습니까?

감사

+0

다른 질문이 생겼습니다 (http://stackoverflow.com/q/9790433/701062). 구조 맵 예제를 거기 옮겼습니다. –

+0

자, 거기서 계속하겠습니다. – dmc

답변

1

당신은 그러나 현재 클라이언트 (때문에 포스트 동안 연결되지로)이 정보를 볼 수 없습니다 SignalR을 사용하여 컨트롤러에서 연결된 클라이언트에 정보를 보낼 수없는 이유가 없다. 즉, Structuremap을 SignalR로 가져 오는 것은 실제로 매우 쉽습니다. 내 답변에 정확히 이것을 수행하는 방법을 볼 수 있습니다 : https://stackoverflow.com/a/9866374/701062.

+0

Thanks @ Gary.S. 실제로 signalR 구조체 맵을이 방법으로 구현하려고 시도했지만 var container = (IContainer) IoC.Initialize(); AspNetHost.SetResolver (새로운 StructureMapDependencyResolver (컨테이너)); AppStart에서. – dmc

+0

이제 AspNetHost.SetResolver (StructureMap.ObjectFactory.GetInstance ())를 시도했습니다. AppStart에 있지만 잘못된 인수가 나타납니다. – dmc

관련 문제