學習WF筆記9 自定義活動的驗證方式 4

2022-03-21 17:12:39 字數 2512 閱讀 8195

在使用

wf進行工作流設計時,假如某些屬性沒有設定或設定錯誤,那麼

wf將會給出相應的提示,在進行自定義活動時同樣可以實現對屬性值進行驗證的功能。使用者首先要建議乙個專門用於對屬性值進行驗證的類,例子中命名「

customactivityvalidator

」,然後令其繼承「

system.workflow.componentmodel.compiler.activityvalidator

」父類,並過載「

validationerrorcollection

」方法。

在該方法中使用者可以對所需要驗證的屬性值進行逐一判斷,如果驗證失敗,則可以通過「

validationerror

」將錯誤的資訊進行收集,最後一起返回給使用者。

例如對字串屬性「

para1」

進行非空判斷。

if(string.isnullorempty(activity.para1))

例如對字串是否包含

」!」符號進行判斷

if(!activity.para1.contains(「!」))

用於屬性驗證的類開發完畢後,就可以在自定義活動的類名上對它進行引用,以實現對屬性值的驗證功能。

[activityvalidator(typeof(customactivityvalidator))]

public partial class validator:system.workflow.componentmode.activity

{}建立自定義活動

建立乙個自定義活動,並定義兩個字元型別的屬性「

para1」

和「para2」

。「para1」

的預設值為「你好!」,「

para2」

的預設值為「恭喜發財!」,其**如下所示。

public static dependencyproperty para1property=dependencyproperty.register(「para1」, typeof(system.string),typof(

activity1

),new propertymetadata(「

你好!」));

[descriptionattribute(「

輸入乙個字串

」)][browsableattribute(true)]

[designerserializationvisibility(designerserializationvisibility.visible]

public string para1

set}

public

static

dependencyproperty para2property = dependencyproperty.register("para2", typeof(string), typeof(activity1), new

propertymetadata("

恭喜發財!"

));[descriptionattribute("

輸入乙個字串"

)][browsableattribute(true)]

[designerserializationvisibility(designerserializationvisibility.visible)]

public

string para2

set}

然後建立乙個用於驗證的類,命名為

」customactivityvalidator」,

在該類中驗證屬性「para1」和「para2」必須不能為空,而且屬性「para1」必須包含感嘆號,屬性「para2」必須包含「恭喜」兩字,**如下。

public

class

customactivityvalidator:system.workflow.componentmodel.compiler.activityvalidator

else

if (!activity.para1.contains("

!"))

if (string.isnullorempty(activity.para2))

else

if (!activity.para2.contains("

恭喜"))

}return validationerros;}}

**寫完後,在activity1的**上加上[activityvalidator(typeof(customactivityvalidator))]特性才能進行驗證。

自定義活動編譯通過後將它新增到工作流的設計介面,在屬性視窗中將屬性「para1」和「para2」的預設值去掉,如圖1所示,系統給出不能為空的錯誤提示。

圖1 自定義活動驗證結果

在屬性視窗中將屬性「para1」和「para2」的預設值分別進行修改,系統也將會給出相應的錯誤提示。

圖2 自定義活動驗證結果

學習WF筆記9 自定義活動中事件型別的屬性 3

在活動的屬性視窗中有兩種型別的屬性,一種是在第 2節講到的普通屬性,另外一種是事件型別的屬性。使用者可以通過該屬性建立相應的事件,例如 利用 code 活動的 executecode 屬性來建立乙個事件,開發人員可以在該事件中執行相應的業務操作。在自定義活動中建立事件型別屬性與建立普通屬性的方法基本...

WF4 0 Beta1之旅 6 自定義活動

一 程式集,命名空間,活動變化 wf4並非是在原有wf3.x上的改進,而是全新的開發有新的命名空間,程式集,原wf3的部分會繼續保留這主要是為了相容,下面的 告訴你具體的變化 1.程式集的變化 wf3.x程式集 wf4程式集 system.workflow.activities.dll system...

MybatisPlus學習筆記9 自定義全域性操作

int deleteall int deleteall public class mysqlinjector extends autosqlinjector 執行 sql 動態 sql 參考類 sqlmethod string sql delete from table.gettablename s...