1

以下は、セルフ ホスト デザイナーで同じ問題のトラブルシューティングを試みているときに発見されたシナリオです。タイプを含むライブラリ プロジェクトを作成します。私のはこれです。

namespace RaceEventLibrary
{
    public class Registration
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string EventName { get; set; }
    }
}

ここで、Workflow 4.5 コンソール アプリ (またはサービス、それは問題ではないようです) を作成します。ライブラリ プロジェクトを参照します。デザイナーにシーケンスを配置し、このライブラリ タイプの InArgument を作成します。私の場合は Registration です。すべて順調です。デザイナーは満足しています。

次に、別の同一のプロジェクトを作成し、同じライブラリを参照します。最初のプロジェクトから xaml ファイルを開くだけです。ブーム、それはタイプを見つけることができません。

System.Xaml.XamlException: 'プロパティ 'registration' の型 'InArgument(r:Registration)' を解決できませんでした。

xaml のこれは次のとおりです。

    <x:Members>
        <x:Property Name="registration" Type="InArgument(r:Registration)" />
    </x:Members>

preceded by 
    xmlns:r="clr-namespace:RaceEventLibrary;assembly=RaceEventLibrary"

セルフ ホスト デザイナーを使用して、この問題のさまざまなバリエーションを見つけて、ライブラリ アセンブリをデザイナーにロードするさまざまな方法を試しましたが、うまくいきませんでした。

これを修正する方法の提案はありますか?

4

1 に答える 1

0

WF4 には、標準の .NET フレームワークと必ずしも完全に同じではないアセンブリを読み込む独自の方法があります。Ron Jacobs は、これに関して興味深い数の投稿を行っています。まずはこちらを参照してください。

実際にワークフローを WorkflowDesigner にロードする方法については言及していません。これにはいくつかの方法があります。ActivityXamlServices.CreateBuilderReader() を使用する場合、XamlSchemaContextを使用して必要なアセンブリを指定できます。これにより、ワークフローをロードできるようになります。

于 2012-11-04T20:25:36.377 に答える