迭代.net构造函数参数

时间:2014-08-05 09:19:08

标签: c# .net winforms constructor .net-4.5

我可能会问不可能,但无论如何我都会问。从以下内容:

public SomeClassConstructor(SomeOtherClass someOtherClass, string someString){
   ...
}

是否可以访问参数以便可以迭代它们(例如某种反射来访问包含参数的IEnumerable<object>

注意:在这种情况下,params []集合不是答案。其他限制是,这将在WinForms环境中使用; .Net 4.5是可以接受的。

编辑:在回应DavidG的评论时,我追随的是物品本身(又名价值和名称)。原因是我需要在打开表单时(在app.config中设置UAT标志时)记录(序列化)参数。大型对象的序列化超过了返回简单的字符串,以免在内存中膨胀。)。

1 个答案:

答案 0 :(得分:3)

不,您无法通过反射访问参数值。您可以获取名称,类型,属性等 - 但不是值。方法,构造函数,属性设置器,索引器等等都是如此。

您可以在调试器API中执行此操作,但这几乎从来都不是正确的方法。

对于日志记录,您应 手动执行此操作:

Log("someOtherClass={0}, someString={1}", someOtherClass, someString);

或查看AOP以自动注入电话 - 例如,请查看PostSharp