Я пытаюсь написать некоторые действия с C # вместо дизайнера и XAML.VS2010 был глючным и очень медленным для этого, а также имеет очень плохую поддержку компиляции (для имен переменных, свойств и т. Д.).
Поэтому я пытаюсь создавать действия, наследуя их непосредственно от класса 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, но я получаю сообщение об ошибке, в котором необходимо указать свойство To в Assign.
Я искал подходящие учебники,но все, что я нашел, была статья MSDN, в которой была быстрая и грязная реализация кода, и в ней использовались литералы вместо переданных аргументов, поэтому никакой помощи оттуда не было.