Microsoft는 BizTalk 파이프 라인 인터페이스에서 아래와 같이 Validate 구성 요소를 제공합니다.BizTalk 파이프 라인 구성 요소의 PropertyBag 값 확인
는 여기에 내가 시도하고, 전혀 작동하지 않았다 무엇 :
는public System.Collections.IEnumerator Validate(object projectSystem)
{
System.Collections.ArrayList errorStringArrayList = new System.Collections.ArrayList();
if (this.Substring1ColumnStart >= this.Substring1ColumnEnd)
{
errorStringArrayList.Add("Substring1ColumnEnd must be > SubstringColumn1Start");
}
return (System.Collections.IEnumerator) errorStringArrayList;
}
는
는 "이러한 오류 메시지가 컴파일러 오류 메시지로 표시했다. 성공적인 속성 유효성 검사를보고하려면이 메서드는 빈 열거자를 반환해야합니다. "
.
하지만 잘못된 값을 입력하면 컴파일러 메시지가 표시되지 않습니다. 또한 BTS-Admin에서 "컴파일러 메시지"가없는 경우에도 유효성 검사를 수행하지 않을까요 ???
또한 왜 유효성 검증은 강력한 유형의 매개 변수 대신 일반 오브젝트를 parm으로 수신합니까? 그리고 validate는 언제 호출됩니까? propertyBag 값이 변경 될 때마다? 11:55 오전 CT에서
업데이트 2017년 5월 11일는
열심히이 여기에 모두 나열하려면 몇 가지 더 일을 시도했다. 마침내 오류가 발생했지만 VS 컴파일 오류에서 매우 유용하지는 않습니다. 아래 스크린 샷을 참조하십시오. 확실히 내가 돌아온 오류는 아닙니다. VS2015에 문제가있을 수 있습니다.
나는 또한 내 데이터를 고정 된 문제에있어, 여전히 오류가 발생했습니다. Pipeline Componetet이 GAC되어 있기 때문에 매번 Visual Studio를 닫고 다시 열어 새로운 복사본이 있는지 확인했습니다.
null이 아닌 다른 것을 반환하는 것이 문제 일 수 있다고 생각했습니다. 요약하면 BTS-ADMIN에서 작동하지 않으면이 기능이 실제로 쓸모없는 것으로 나타났습니다. 그래서 나는 단지 런타임 오류를 수행 할 것입니다. 아마 그런 이유로이 작은 문서 및이 기사에 몇몇 기사 또는 블로그가있다.
public System.Collections.IEnumerator Validate(object projectSystem)
{
System.Collections.ArrayList errorStringArrayList = new System.Collections.ArrayList();
if (this.Substring1ColumnStart >= this.Substring1ColumnEnd)
{
errorStringArrayList.Add("Substring1ColumnEnd must be > SubstringColumn1Start");
}
if (errorStringArrayList.Count > 0)
{
return (System.Collections.IEnumerator)errorStringArrayList;
}
else
{
return null;
}
}
이미 MSDN에서이 질문에 답변했습니다. https://social.msdn.microsoft.com/Forums/en-US/05cdf0ec-6e66-41c1-9faf-8f4ef6bb67f6/how-to-validate-value-in- the-propertybag-from-a-pipeline-component 포럼 = biztalkgeneral –