2014-01-13 31 views
2

我確定我在這裏錯過了一些東西,但很多谷歌搜索並沒有爲我找到它。情況如下:如何從嵌套活動訪問Property參數的值?

我們創建了一個自定義工作流設計器,允許最終用戶從我們定義的各種自定義活動(審閱,提交,通知等)構建工作流定義。這些定義(Xaml)被保存到一個Db中,並用於在我們的系統中爲長時間運行的進程創建工作流實例。用戶可以在其中設置屬性(例如,Review有一個屬性參數:AllowedRoles)。問題是,我無法將這些屬性傳遞給嵌套活動。

例如:

審查需要訪問的審查「AllowedRoles」屬性的內部活動「WriteStatus」。如果'AllowedRoles'被定義爲屬性,則WriteStatus不能「查看」它來分配它的值。我可以將它從Property更改爲InArgument,但是我無法將值與設計器中的屬性進行映射(這些屬性應該是定義的一部分,並且不與任何特定上下文關聯)。

有沒有人遇到過這個問題,或者對我如何解決問題有不同的建議?

在此先感謝!

羅伊斯

+0

*我可以將它從一個屬性更改爲一個InArgument,但是我無法將值映射到設計器*中的屬性或從該屬性映射值。爲什麼?你爲什麼不使用'InOutArgument'?它可以讓你做到這一點:*映射值和來自屬性*。當然,您可以在設計師中進行編輯。通常你通過定義一個工作流變量並將輸出值賦給它來從'(In)OutArgument'中獲得值。 – Joao

回答

0

我能夠通過轉換XAML活動代碼來解決財產VS InOurArgument問題。這使我可以在代碼中設置活動的屬性,然後將它們內聯傳遞給內部活動。可能有更好的辦法,但目前效果很好。

public sealed class Test : Activity 
{ 
    public string Stuff { get; set; } // CLR Property 

    public Test() 
    { 
     Implementation =() => new WriteLine {Text = Stuff}; 
    } 
}