【发布时间】:2011-05-17 03:15:19
【问题描述】:
void MyMethod(string something, params object[] parameters)
{
foreach (object parameter in parameters)
{
// Get the name of each passed parameter
}
}
例如,如果我以以下方式调用该方法,我想获取名称“myFirstParam”和“anotherParam”。
string myFirstParam = "some kind of text";
string anotherParam = 42;
MyMethod("test", myFirstParam, anotherParam);
也许反思就是答案?也许这是不可能的?我知道this question 的存在,但该解决方案在这里不起作用。
(请不要回答“这不是一个好主意”。这不是我的问题。)
【问题讨论】:
-
我迫不及待想知道您将如何处理这些信息。
-
好吧,我会给你应得的欢笑。我只是对改进数据库更新包装方法的语法感到好奇,其中 C# 中的参数名称将是 SQL 命令中使用的参数名称。
-
如果你想使用像 MVC 这样的匿名类型,你可以使用像
MyMethod("test", new { myFirstParam = "some kind of text", anotherParam = 42});这样的语法。请参阅weblogs.asp.net/leftslipper/archive/2007/09/24/… 获取一些使其工作的简单代码。 -
整洁 - 并且 then 我将能够使用反射来获取属性名称。非常好。谢谢。
-
然后!我会使用动态对象的方法缺少优点,而不必为每个“sql命令”编写新方法,所以你可以只写 dbWrapper.whateverMethod(new { param1 = 'foo', param2 = 'bar'}) 并且能够抓住'whateverMethod'是你想要调用的sproc
标签: c#