문제

Windows Workflow Foundation의 내부를 알아 내려고 노력하고 있습니다. 따라서 일부 소프트웨어 구성 요소가 있으며 조건 기반 순차 워크 플로우 또는 상태 기계 워크 플로이면 워크 플로 형태로 얽습니다. 이제, 나는 IOC + 의존성 주입 (Unity 또는 Spring.net을 통해)에도 동일하게 적용되지 않는다고 생각합니다 (여기서 잘못 될 수 있음). 언제 무엇을 사용해야합니까 ?? 나도 올바르게 생각하고 있니 ??

도움이 되었습니까?

해결책

내가 질문을 이해하는지 확실하지 않지만 어쨌든 시도해 볼 것입니다.

WF는 IOC 컨테이너를 사용하지 않습니다. 워크 플로 런타임, 서비스 로케이터 및 워크 플로 활동에 종속성을 추가하고 워크 플로우 런타임에서 이러한 서비스를 검색하는 Servicelocator 패턴을 사용합니다.

Servicelocator 및 IOC 패턴은 유사하며 디퍼 커플 링 종속성에 동일한 목적을 갖습니다. Apporach는 IOC 컨테이너에서 종속성을 추진하는 반면 Servicelocator는 종속성을 끌어내는 데 사용됩니다.

이것이 당신의 질문에 답하기를 바랍니다. 그렇지 않다면 원래 질문을 시도하고 다시 표현하려고합니다.

다른 팁

워크 플로우에서 IOC 컨테이너가 제공하고 서비스하는 구성 요소를 사용하는 방법에 맞서고있었습니다. 다른 답변에서 알 수 있듯이 워크 플로 인스턴스는 Service-Docator를 사용하여 종속성을 주입하는 대신 런타임에서 서비스를 가져 오기를 원합니다.

간격을 연결하는 쉬운 방법은 WF 런타임을 설정할 때 IOC 컨테이너에서 종속성을 제거한 다음 AddService를 사용하여 런타임에 넣는 것입니다. 워크 플로우는 OnactivityExecutionContextLoad를 무시하고 서비스 제공 업체의 GetService 메소드를 사용하여 런타임에서 낚시를하고 워크 플로에서 [비 서리 화 된] 공개 속성으로 묶을 수 있습니다. 그런 다음 코드 활동 등의 서비스에 액세스 할 수 있습니다.

워크 플로 인스턴스가 활성화 될 때 종속성을 주입하는 런타임 서비스를 조작 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top