Windows Workflow 4.0を使用して、プログラムでWindowsワークフローサービスを正常に作成しました。Windows Workflow 4.0はCSharp式をサポートしていなかったため、VisualBasic式を使用する必要がありました。4.5にアップグレードしたので、それらをVisualBasic式からCSharp式に変換したいと思います。残念ながら、ワークフローを使用しようとするとエラーが発生します。
4.0では、ワークフローを適切に生成してシリアル化するために、使用する名前空間について通知する必要がありました。たとえば、私は次のようなものを持っていました:
private static void AddVbNamespaceSettings(WorkflowService service, params Type[] types)
{
var vbsettings = VisualBasic.GetSettings(rootObject) ?? new VisualBasicSettings();
foreach (Type t in types)
{
vbsettings.ImportReferences.Add(
new VisualBasicImportReference
{
Assembly = t.Assembly.GetName().Name,
Import = t.Namespace
});
}
VisualBasic.SetSettings(service, vbsettings);
}
以上のことにより、視覚的な基本表現を評価するために必要なタイプをワークフローサービスに通知することができました。
CSharpと同等のことをする必要があると思いますが、それが何であるかを知ることができませんでした。同等のものはありますか?
さらに、次のような操作を行うことでワークフローを検証できました。
ValidationResults results = ActivityValidationServices.Validate(service.Body);
if (results.Errors.Count > 0)
{
throw new Exception();
}
私の式がCSharpValuesにあるので、バリデーターは悪い式をキャッチしていないようです。ワークフローを検証する適切な方法は何ですか?
ありがとう、エリック