가정하자 나는 그것의 방법과 속성, 사용자 정의 클래스 (모든 클래스)했습니다 :VisualBasicValue <T> : 액세스 사용자 정의 클래스와 메서드 속성
이public class Test
{
public string MyString { get; set; }
public bool MyBool { get; set; }
public override string ToString()
{
return "Test Class : " + this.MyString + " - " + MyBool;
}
}
가 지금은 이동 WF4 사이의 속성을 처리하는 VisualBasicValue<T>
을 사용하는 활동. 예 :
public class Program
{
static void Main(string[] args)
{
Test testClass = new Test()
{
MyString = "some string",
MyBool = true
};
Sequence wf = new Sequence()
{
Variables =
{
new Variable<Test>("varName", testClass),
},
Activities =
{
new WriteLine() { Text = new VisualBasicValue<string>("\"Test Class Properties: \" & varName.MyString & \"-\" & varName.MyBool") },
new WriteLine() { Text = new VisualBasicValue<string>("\"Test Class ToString(): \" & varName") }
}
};
WorkflowInvoker.Invoke(wf);
Console.ReadKey();
}
}
이 코드는 문제없이 컴파일됩니다. 변수는 모든 종류의 클래스를 처리 할 수 있지만 실행하는 동안 사용자 정의 클래스 사용에 대해 불평하는 것으로 보입니다. 일부 예외 같은 :
The following errors were encountered while processing the workflow tree:
'Literal<Test>': Literal only supports value types and the immutable type System.String. The type WorkflowConsoleApplication3.Test cannot be used as a literal.
'VisualBasicValue<String>': Compiler error(s) encountered processing expression ""Test Class ToString(): " & varName".
운영자 '&'유형 '문자열'와 'WorkflowConsoleApplication3.Test'에 대한 정의되어 있지 않습니다.
난 당신이 라인을 따라 뭔가를 할 수 읽었습니다 :
VisualBasicSettings vbSettings = new VisualBasicSettings();
vbSettings.ImportReferences.Add(new VisualBasicImportReference()
{
Assembly = typeof(Test).Assembly.GetName().Name,
Import = typeof(Test).Namespace
});
// construct workflow
VisualBasic.SetSettings(wf, vbSettings);
WorkflowInvoker.Invoke(wf);
하지만 그 트릭을 할 것 같다하지 않습니다. 어떤 도움이 필요합니까?
추신 : 동일한 주제에서 누군가 내가 \ VisualBasicReference<T>' with
OutArgument`를 사용하는 방법에 대해 약간의 예제를 제공 할 수 있습니까? 그것은 나중 단계에서 사용할 수있는 것 같지만 어떤 종류의 예제를 찾을 수 있습니다.
예! 그게 바로 문제입니다. 고맙습니다. – Joao