현재 사용자 지정 작업을 개발하고 있는데 문제가 있습니다.사용자 지정 작업 : TaskHost 매개 변수 지속성
내 사용자 지정 작업은 세 개의 파일로 구성 양식 인 인터페이스 "IDtsTaskUI"
- MBTask합니다.
Initialize() 함수의 MBTaskUI에서 TaskHost 객체를 나타내며이를 변수에 저장합니다. 그리고 다음의 getView() 함수 O를 그것은 잘 작동
public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
{
this.taskHost = taskHost;
IDtsConnectionService cs = serviceProvider.GetService
(typeof(IDtsConnectionService)) as IDtsConnectionService;
this.connections = cs.GetConnections();
}
public ContainerControl GetView()
{
return new MBForm(this.taskHost, this.connections);
}
내 양식 빌더이 TaskHost를 보내고 난 양식을로드 할 때 매개 변수를 얻기 위해 내 폼이 TaskHost를 사용하고 난 그것을 닫을 때 저장할 수 있습니다 .
String script_tmp = (String)th.Properties["myScript"].GetValue(th);
SqlConnection conn_tmp = (SqlConnection)th.Properties["myConnection"].GetValue(th);
th.Properties["myScript"].SetValue(th, myScript);
th.Properties["myConnection"].SetValue(th, myConnectionTarget);
그래서 작업 편집기를 다시 열면 일부 매개 변수를 사용하여 개체를 초기화합니다.
하지만 내 문제는 내 MBTask 클래스에서 매개 변수 (myConnection 및 myScript)를 확인하는 Validate() 함수가 있습니다. 이 매개 변수는 항상 null입니다. (일반적으로 MBForm과 닫기 함수를 사용하여 초기화 한 후에도)
따라서 매개 변수가 인스턴스화되지 않은 이유는 무엇입니까? "th.Properties ["로 myscripf "] SetValue는 (일,로 myscripf)."
로 myscripf 및 myConnection과 내 MBTask 공개를 선언 내가 얻을 수 있기 때문에 이러한 매개 변수가 저장 알고
public class MBTask : Task
{
public SqlConnection myConnection { get; set; }
public String myScript { get; set; }
?. 다시 편집기를 열 때 다시 나타납니다. 그렇다면 Validate()를 수행 할 때 null이되는 이유는 무엇입니까?
MBTaskUI에서 TaskHost에 대한 링크와 MBTask에서 가져온 링크를 추가해야합니까?
내가 여기에 이해하지 못하는 뭔가 ... 당신의 도움을
감사합니다,
레우 레조 이네가있을 것으로 보인다.
조사 후 UI와 작업이 완전히 분리 된 구성 요소라는 것을 알았습니다. 그래서 Form (및 TaskHost)으로 정의한 속성을 어떻게 얻을 수 있습니까? 편집 한 후에 구성 요소를 클릭하면 속성 패널 (myScript 및 myConnection)에서 볼 수 있습니다. –