Monday, February 12, 2007 9:48 PM
by
Paul Wu
Code Snippet: CodeDOM expressions
Knowing all the classes in the CodeDOM namespace isn't very useful unless one knows how to appy them. This blog entry will serve as a cheat sheet for the most commonly used expressions and statements. This page is a work in progress.
MyClass.Method("value", 4)
System.CodeDom.CodeExpression expr = new CodeMethodInvokeExpression( new CodeMethodReferenceExpression(new CodeVariableReferenceExpression("MyClass"), "Method"), new CodePrimitiveExpression("value"), new CodePrimitiveExpression (4))); |
MyClass.Method("value", GetItemByIdex(4))
|
System.CodeDom.CodeExpression expr = new CodeMethodInvokeExpression( new CodeMethodReferenceExpression(new CodeVariableReferenceExpression ("MyClass"), "Method"), new CodePrimitiveExpression("value"), new CodeMethodInvokeExpression( new CodeMethodReferenceExpression (new CodeThisReferenceExpression (), "GetItemByIndex"), new CodePrimitiveExpression (4)))); |
string.Empty
|
System.CodeDom.CodeExpression expr = new System.CodeDom.CodeFieldReferenceExpression(new System.CodeDom.CodeTypeReferenceExpression (typeof(string)), "Empty"); |
this.Method
|
System.CodeDom.CodeExpression expr = new System.CodeDom.CodeFieldReferenceExpression(new System.CodeDom.CodeThisReferenceExpression (), "Property"); // this.Property |
x = 0xFF
|
System.CodeDom.CodeExpression expr = new CodeVariableReferenceExpression("x"), new CodeSnippetExpression ("0xFF"))); |
for (int i = 0; (i< 8); i=(i+1)){}
|
CodeVariableReferenceExpression var = new CodeVariableReferenceExpression ("i"); CodeIterationStatement forLoop = new CodeIterationStatement( new CodeVariableDeclarationStatement(typeof(int), "i", new CodePrimitiveExpression (0)), new CodeBinaryOperatorExpression(var, CodeBinaryOperatorType.LessThan, new CodePrimitiveExpression (8)), new CodeAssignStatement(var, new CodeBinaryOperatorExpression(var, CodeBinaryOperatorType.Add, new CodePrimitiveExpression (1))))); |
* the extra white space in some of the code is to avoid the censoring mechanism which I didn't want to turn off.