本文整理汇总了C#中CodeDomProvider.GenerateCodeFromStatement方法的典型用法代码示例。如果您正苦于以下问题:C# CodeDomProvider.GenerateCodeFromStatement方法的具体用法?C# CodeDomProvider.GenerateCodeFromStatement怎么用?C# CodeDomProvider.GenerateCodeFromStatement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CodeDomProvider
的用法示例。
在下文中一共展示了CodeDomProvider.GenerateCodeFromStatement方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildTree
//.........这里部分代码省略.........
// return iReturn;
// }
// }
CodeNamespace ns = new CodeNamespace ("Foo");
ns.Comments.Add (new CodeCommentStatement ("Foo namespace"));
cu.Namespaces.Add (ns);
CodeTypeDeclaration cd = new CodeTypeDeclaration ("Foo");
ns.Types.Add (cd);
CodeMemberProperty property = new CodeMemberProperty ();
property.Name = "System";
property.Attributes = MemberAttributes.Public;
property.Attributes = (property.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Private | MemberAttributes.Static;
property.Type = new CodeTypeReference (typeof (int));
property.GetStatements.Add (new CodeMethodReturnStatement (new CodePrimitiveExpression (42)));
cd.Members.Add (property);
property = new CodeMemberProperty ();
property.Name = "Property";
property.Attributes = (property.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Private | MemberAttributes.Static;
property.Type = new CodeTypeReference (typeof (int));
property.GetStatements.Add (new CodeMethodReturnStatement (new CodePrimitiveExpression (Int32.MaxValue)));
cd.Members.Add (property);
AddScenario ("CallTestMethod02", "Call Foo.Foo.TestMethod02.");
CodeMemberMethod method2 = new CodeMemberMethod ();
method2.Name = "TestMethod02";
method2.Attributes = (method2.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;
method2.ReturnType = new CodeTypeReference (typeof (int));
method2.Statements.Add (new CodeVariableDeclarationStatement (typeof (int), "iReturn"));
CodePropertyReferenceExpression cpr = new CodePropertyReferenceExpression (
new CodeTypeReferenceExpression (new CodeTypeReference ("Foo.Foo",
CodeTypeReferenceOptions.GlobalReference)), "Property");
CodeAssignStatement cas = new CodeAssignStatement (new CodeVariableReferenceExpression ("iReturn"), cpr);
method2.Statements.Add (cas);
method2.Statements.Add (new CodeMethodReturnStatement (new CodeVariableReferenceExpression ("iReturn")));
cd.Members.Add (method2);
AddScenario ("CallTestMethod03", "Call Foo.Foo.TestMethod02.");
CodeMemberMethod method3 = new CodeMemberMethod ();
method3.Name = "TestMethod03";
method3.Attributes = (method3.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;
method3.ReturnType = new CodeTypeReference (typeof (int));
method3.Statements.Add (new CodeVariableDeclarationStatement (typeof (int), "iReturn"));
CodeTypeReferenceOptions ctro = CodeTypeReferenceOptions.GlobalReference;
CodeTypeReference ctr = new CodeTypeReference (typeof (Math), ctro);
CodeMethodInvokeExpression cmie = new CodeMethodInvokeExpression (
new CodeMethodReferenceExpression (
new CodeTypeReferenceExpression (ctr), "Abs"), new CodeExpression[] { new CodePrimitiveExpression (-1) });
cas = new CodeAssignStatement (new CodeVariableReferenceExpression ("iReturn"), cmie);
method3.Statements.Add (cas);
method3.Statements.Add (new CodeMethodReturnStatement (new CodeVariableReferenceExpression ("iReturn")));
cd.Members.Add (method3);
AddScenario ("CallTestMethod04", "Call Foo.Foo.TestMethod04.");
CodeMemberMethod method4 = new CodeMemberMethod ();
method4.Name = "TestMethod04";
method4.Attributes = (method4.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;
method4.ReturnType = new CodeTypeReference (typeof (int));
method4.Statements.Add (new CodeVariableDeclarationStatement (typeof (int), "iReturn"));
cpr = new CodePropertyReferenceExpression (null, "System");
cas = new CodeAssignStatement (new CodeVariableReferenceExpression ("iReturn"), cpr);
method4.Statements.Add (cas);
method4.Statements.Add (new CodeMethodReturnStatement (new CodeVariableReferenceExpression ("iReturn")));
cd.Members.Add (method4);
// Verify that what CodeTypeReferenceOptions are correctly set.
// Basically this check gives the code coverage for the get property
AddScenario ("CTR_GetGlobalRefCheck", "Check that CodeTypeReference.Options gives the proper value.");
if (ctr.Options == CodeTypeReferenceOptions.GlobalReference)
VerifyScenario ("CTR_GetGlobalRefCheck");
// one-off generate statements
StringWriter sw = new StringWriter ();
// global shouldn't be generated in this instance
CodeTypeReference variableType = new CodeTypeReference (typeof (System.String), CodeTypeReferenceOptions.GlobalReference);
CodeVariableDeclarationStatement variable = new CodeVariableDeclarationStatement (variableType, "myVariable");
provider.GenerateCodeFromStatement (variable, sw, null);
// global should be generated in this instance
CodeTypeReference variableType2 = new CodeTypeReference (typeof (System.Array), CodeTypeReferenceOptions.GlobalReference);
CodeVariableDeclarationStatement variable2 = new CodeVariableDeclarationStatement (variableType2, "myVariable2");
provider.GenerateCodeFromStatement (variable2, sw, null);
AddScenario ("GlobalKeywordShouldExist", "When an array is referred to, a global qualifier should be generated on it.");
if (sw.ToString ().IndexOf ("global") != -1 && sw.ToString ().IndexOf ("Global") != -1) {
LogMessage ("Global keyword does not exist in statement: " + sw.ToString ());
}
else
VerifyScenario ("GlobalKeywordShouldExist");
}
}