Pourriez-vous dire comment je peux faire une déclaration comme ci-dessous en utilisant CodeDOM (.net)?CodeDom séquence de méthodes
_myClass.Configure("MyNode").Action("param1", "param2");
Merci.
Pourriez-vous dire comment je peux faire une déclaration comme ci-dessous en utilisant CodeDOM (.net)?CodeDom séquence de méthodes
_myClass.Configure("MyNode").Action("param1", "param2");
Merci.
En supposant que _myClass est un champ de la classe avec laquelle vous travaillez, vous construisez le graphique en faisant référence au champ.
CodeExpression fieldReferenceExpression = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass")
alors vous invoquez la méthode Configurer sur le terrain avec une expression primitive de la valeur de chaîne « myNode » en tant que paramètre.
CodeExpression configureInvokeExpression = new CodeMethodInvokeExpression(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"),
"Configure",
new CodePrimitiveExpression("MyNode"))
Enfin, vous souhaitez utiliser cette expression pour appeler la méthode d'action, en utilisant des expressions primitives de « param1 » et « param2 » comme paramètres.
CodeExpression actionInvokeExpression = new CodeMethodInvokeExpression(
new CodeMethodInvokeExpression(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_myClass"),
"Configure",
new CodePrimitiveExpression("MyNode")),
"Action",
new CodePrimitiveExpression("param1"),
new CodePrimitiveExpression("param2"));
L'utilisation d'un CSharpCodeProvider, cela génère:
this._myClass.Configure("MyNode").Action("param1", "param2")