我正在嘗試用C#而不是設計器和XAML編寫一些活動。 VS2010一直有問題,而且速度很慢,而且它也有很差的編譯支持(對於變量名稱,屬性等)。用C編寫Workflow Foundation工作流程#
所以我試圖通過直接繼承Activity類來創建活動,但我遇到了一個障礙。
這裏是我的代碼:
public class TestActivity : Activity
{
public InArgument<string> Username { get; set; }
public InArgument<string> Password { get; set; }
public OutArgument<bool> ValidCredential { get; set; }
public OutArgument<ProvisioningRole> Role { get; set; }
public OutArgument<Guid> Guid { get; set; }
protected override Func<Activity> Implementation
{
get
{
return() =>
{
return new Sequence()
{
Activities =
{
new AuthenticateUserActivity()
{
Username = this.Username,
Password = this.Password,
Guid = this.Guid,
Result = this.ValidCredential
},
new If()
{
Condition = this.ValidCredential,
Then = new GetUserRoleActivity()
{
Username = this.Username,
Password = this.Password,
Result = this.Role
}
},
}
};
};
}
set { base.Implementation = value; }
}
}
的問題是與IF()的條件。它應該是一個InArgument,但是this.ValidCredential是一個OutArgument。我試過創建一個變量,爲它賦值ValidCredential。我還嘗試將AuthenticateUserActivity的結果放入變量中,然後將其分配給ValidCredential,但出現錯誤,說明Assign的To屬性需要指定。
我已經四處尋找適當的教程,但我發現所有的MSDN文章有一個快速和髒的代碼實現,它使用文字而不是傳遞的參數,所以沒有從那裏的幫助。