【发布时间】:2015-04-22 06:27:42
【问题描述】:
我想使用 codedom 创建一个通用方法.. 我试过这段代码
foreach (MethodInfo mhttem in sMethodName)
{
var mth = new CodeMemberMethod();
mth.Name = mhttem.Name;
mth.ReturnType = new CodeTypeReference(mhttem.ReturnType.Name);
foreach (var param in mhttem.GetParameters())
{
mth.Parameters.Add(new CodeParameterDeclarationExpression(param.ParameterType, param.Name));
}
}
但是在方法参数中,也显示了命名空间。 比如……
ReminderTemplate GeTemplateById(System.Guid templateId);
我只想要
ReminderTemplate GeTemplateById(Guid templateId);
这里 mth.Parameters.Add(new CodeParameterDeclarationExpression(param.ParameterType.Name, param.Name));
但是如果我有字符串类型的参数,它会转换为 字符串类
例如
PendingEmail GetByEmailToSubjectBodyMsg(String emailTo, String subject, String bodyMsg);
提前致谢
【问题讨论】:
-
我看到你已经用你的尝试更新了这个问题。不用担心
String至少与 C# 编译器的string相同。 -
是的,但我需要一个字符串作为数据类型
-
我认为您将泛型方法与生成方法混淆了。第一个实际上是一个带有类型参数的方法,我在您的 GetTemplateById 方法中看不到。
标签: c# asp.net generics methods codedom