在使用
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...