Я не могу понять, как вызвать и использовать метод в операторе if через CodeDOM.Кто-то уже сделал что-то подобное?
На самом деле, параметры, которые представляют «истинное утверждение» (в CodeConditionStatement), требуют параметров «оператор», но единственный способ, которым я знаю, чтобы вызвать метод, - это CodeMethodInvokeExpression, который'выражение', а не 'выражение', поэтому оно дает мне ошибку для этого.
CodeConditionStatement ifPath = new CodeConditionStatement(
// condition: System.IO.Path.Exit(path)
new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(method.Parameters[1].Name), "Path.Exist", new CodeExpression[] { new CodeVariableReferenceExpression("path") }),
// true:
new CodeStatement[] {
new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(method.Parameters[0].Name), "Console.WriteLine", new CodeExpression[] { new CodePrimitiveExpression("Saisir mot de passe") })
},
// false:
new CodeStatement[] { new CodeCommentStatement("Else block. If condition is false, execute these statements.") }
);
В настоящее время просто выдается сообщение об ошибке, говорящее "невозможно неявно преобразовать тип" System.CodeDom.CodeMethodInvokeExpression'в' System.CodeDom.CodeStatement '".