2013-07-31 77 views
0

我的工作流(xaml)的一個參數是在靜態類中聲明的嵌套類型。不幸的是,「瀏覽.NET類型」對話框不會不管我的搜索嵌套類型的工作流基礎4參數

full.namespace.containingstaticlass.typeIneed

full.namespace.containingstaticlass+typeIneed

告訴我這種類型,因爲對話框沒有工作,我試着編輯xaml本身,但無法弄清楚如何定義

Type="InArgument(xmlnamespacetomyassembly:???)"

幫助!?

編輯:看來工作流設計器根本不適用於嵌套類型,因爲將對象轉換爲嵌套類型的表達式給了我這個錯誤。

enter image description here

在這一點上,任何變通辦法將是最歡迎!

添加了一個顯示問題的simple sample

  1. 沒有辦法添加參數(在設計)類型的NestedType.EssentialStruct
  2. 即使你加投對象NestedType.EssentialStruct反對任何InArgument屬性窗口中的表達,設計師會抱怨。

過賬的相關部分也:

需要在CodeActivity

public static class NestedTypes 
{ 
    public struct EssentialStruct 
    { 
    } 
} 

一個簡單使用嵌套類型作爲InArgument活動中使用,並且導致

嵌套類型
public sealed class TestActivity : CodeActivity<NestedTypes.EssentialStruct> 
{ 
    public InArgument<NestedTypes.EssentialStruct> Handle 
    { 
     get; 
     set; 
    } 

    protected override NestedTypes.EssentialStruct Execute(CodeActivityContext context) 
    { 
     return context.GetValue(this.Handle); 
    } 
} 

我無法發佈產生錯誤的XAML,因爲設計器沒有保存它,錯誤出來之前保存它。

+0

您是否使用x:Type標記擴展? – Will

+0

@會 - 我試過了,但碰到兩個問題。其一,x:Type擴展也不支持這種語法。其次,在Xaml的其他地方 - 這種嵌套類型的節點正在創建,這也導致設計師陷入困境。當我開始工作時,我會用一個小而簡潔的樣本編輯我的代碼。 – Ani

+0

謝謝。這將有所幫助。 – Will

回答

0

您需要在工作流程上使用導入。這是設計師的標籤。它在變量和參數旁邊。

+0

謝謝,但這個類型的程序集已經導入。我可以看到封閉(靜態)類很好。它的嵌套類型我不知道如何聲明一個參數。 – Ani

0

檢查引用的程序集是否構建在x86(或任何CPU)中。我遇到了同樣的問題,結果證明引用的DLL是x64,這使得Visual Studio設計者無法看到它。