Как я могу вызвать метод как Console.WriteLine в CodeStatement CodeConditionStatement? - PullRequest
0 голосов
/ 28 марта 2019

Я не могу понять, как вызвать и использовать метод в операторе 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 '".

...