wf4에서 사용자 지정 활동을 만들려고 노력하고 있습니다. 나는 튜토리얼/예제를 발견하고 이것을 사용하여 시작했지만 문제가있는 것 같다.컨텍스트를 사용할 수 없습니까?
public sealed class SaveRequest : NativeActivity {
// Define an activity input argument of type string
[RequiredArgument]
public InArgument<Request> Request { get; set; }
// If your activity returns a value, derive from CodeActivity<TResult>
// and return the value from the Execute method.
protected override void Execute(NativeActivityContext context) {
Request Request = this.Request.Get(context);
Request.Id = Guid.NewGuid();
Request.Title = "New Test";
RequestMonkeyRepository Rep = new RequestMonkeyRepository();
Rep.save(Request);
}
}
GUID를 할당 할 때 위의 코드는 항상 null 개체 인스턴스로 오류가 발생합니다. 내가 havent 그 워크 플로에 요청 개체를 통과했기 때문에 내가 추측하지만, 나는 그들이 예제에서 이것을 어떻게 볼 수 없습니다.
임 콘솔 응용 프로그램을 실행하고 내 실행 코드 당신은 요청 객체의 인스턴스를 반환 일부 표현 워크 플로우에 요청 InArgument를 설정 했
WorkflowInvoker.Invoke(new RequestMonkeyTest1.TestWorkflow());
'요청'이 마법으로 설정되지 않았습니다. * something *에 바인딩해야합니다. 그 * 무언가 *는 어떻게 든 * 워크 플로우에 전달되어야합니다. – Will
@ 감사합니다. 나는 그들이이 예에서 어떻게했는지는 알지 못한다. 그러나 그것을 생각해 냈다고 생각한다. 내가 idictionary 개체를 워크 플로에 전달합니다. 아직 없지만 닫기가 –
워크 플로에 전달 된 Request 개체의 인덱스로 문자열 값을 제공했는지 확인하십시오. SaveRequest.Request는 해당 값에 바인딩되어야합니다. 문자열 인덱스는 워크 플로의 루트에 정의 된 인수의 이름이어야하며 Request는이 인수에 바인딩되어야합니다. 따라서 이름으로 인스턴스가 워크 플로로 전달되고 워크 플로에서 인수가 채워지고 SaveRequest가 실행될 때 바인딩이 평가되고 Request 인스턴스가 워크 플로 컨텍스트에서 검색됩니다. – Will