【发布时间】:2010-06-24 13:20:51
【问题描述】:
您好,我正在尝试使用 C# 反射来调用传递参数并返回结果的方法。我怎样才能做到这一点?我尝试了几件事,但没有成功。我习惯了 PHP 和 Python,这可以在一行上完成,所以这让我很困惑。
本质上,这就是在没有反射的情况下进行调用的方式:
response = service.CreateAmbience(request);
请求有这些对象:
request.UserId = (long)Constants.defaultAmbience["UserId"];
request.Ambience.CountryId = (long[])Constants.defaultAmbience["CountryId"];
request.Ambience.Name.DefaultText = (string)Constants.defaultAmbience["NameDefaultText"];
request.Ambience.Name.LanguageText = GetCultureTextLanguageText((string)Constants.defaultAmbience["NameCulture"], (string)Constants.defaultAmbience["NameText"]);
request.Ambience.Description.DefaultText = (string)Constants.defaultAmbience["DescriptionText"];
request.Ambience.Description.LanguageText = GetCultureTextLanguageText((string)Constants.defaultAmbience["DescriptionCulture"], (string)Constants.defaultAmbience["DescriptionDefaultText"]);
这是我实现反射的函数,上面案例的 serviceAction 将是“CreateAmbience”:
public static R ResponseHelper<T,R>(T request, String serviceAction)
{
ICMSCoreContentService service = new ContentServiceRef.CMSCoreContentServiceClient();
R response = default(R);
response = ???
}
【问题讨论】:
标签: c# reflection