0

XamlInjectorプログラムで作成された単一のカスタムアクティビティを動的にモックするために使用できるようにしたいと思います。現在、私は以下をスローしSystem.ArgumentException: Illegal characters in pathます。インジェクターから。これを機能させる方法はありますか?

string serializedActivity = CreateXaml(new MyActivity()); //(Activator.CreateInstance(activityType));
var xamlInjector = new XamlInjector(serializedActivity);

private static string CreateXaml(object activity) {
    StringBuilder builder = new StringBuilder();
    StringWriter writer = new StringWriter(builder);
    XamlWriter xamlWriter = ActivityXamlServices.CreateBuilderWriter(new XamlXmlWriter(writer, new XamlSchemaContext()));
    XamlServices.Save(xamlWriter, activity);
    return builder.ToString();
}

作成されたxamlの例を次に示します。

<?xml version="1.0" encoding="utf-16"?><Delay xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" />

<?xml version="1.0" encoding="utf-16"?><CreateTemplate AuthenticationHeader="{x:Null}" BaseTdeUri="{x:Null}" CreatedTemplateId="{x:Null}" Password="{x:Null}" TemplateContent="{x:Null}" UserName="{x:Null}" xmlns="clr-namespace:XYZ.Workflow.TdeRestApi;assembly=XYZ.Workflow.Activities" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" />

4

1 に答える 1

1

興味深いアイデア-これを行うXamlInjectorにオーバーロードを追加する必要があります。

エラーが発生する理由は、XamlInjectorコンストラクターがシリアル化されたxamlではなくファイル名を予期しているためです。

于 2012-06-29T23:12:54.017 に答える