【发布时间】:2011-07-12 18:46:09
【问题描述】:
我有两种方法;其中一个位于类外,另一个位于类内。我希望能够使用 CodeDom 从类外部的方法调用类内部的方法。这通过使用代码会更容易解释...
内部有方法的类:
public static class Public
{
public static byte[] ReadAllData(string sFilePath)
{
byte[] b = new byte[sFilePath.Length];
b = System.IO.File.ReadAllBytes(sFilePath);
return b;
}
}
** 来自另一个班级:
Public.ReadAllData(@"C:\File.exe");
我想使用 CodeDom 重新创建上述内容 -
CodeMemberMethod method = new CodeMemberMethod();
method.Statements.Add(new CodePropertyReferenceExpression(
new CodeVariableExpression("Public"), "ReadAllData"));
以上代码将产生以下输出 - 但请注意我无法传递任何参数!
Public.ReadAllData;
【问题讨论】:
-
为什么需要使用 CodeDom 来做到这一点?你想解决什么问题?
-
我的项目的全部目的是使用 CodeDom ...
-
为什么人们总是想伤害自己这么多..?:)
-
@Tigran,在某些情况下动态生成代码很有用。而且我认为使用 Reflection.Emit 比 CodeDom 更痛苦,并且 Expressions 不能用于所有事情,并且在 .Net 3.5 中缺乏重要功能。
-
@tigran 我在编程方面遇到的困难让我如此着迷! :)