我有一个问题,类似于过去的问题,但我想知道是否有办法实现这一目标:
向方法发送属性本身的名称,而不直接使用该属性。 (IE。不是GetName(()=> ParamSearch1参数 - 就像在另一个解决方案上看到的那样)
示例代码:
#region Props
public string ParamSearch1
{
get
{
return GetValueFromQueryString(/*Here should come a string called ParamSearch1*/);
}
}
#endregion
#region Helper Methods
private string GetValueFromQueryString(string keyName)
{
return string.IsNullOrEmpty(Request.QueryString[keyName]) ? "" : Request.QueryString[keyName];
}
#endregion
答案 0 :(得分:4)
如果您的目标是.NET 4.5,则可以使用CallerMemberName属性。
public string ParamSearch1
{
get
{
return GetValueFromQueryString();
}
}
private string GetValueFromQueryString([CallerMemberName] string keyName = "")
{
return string.IsNullOrEmpty(Request.QueryString[keyName]) ? "" : Request.QueryString[keyName];
}
否则,除了您已经遇到过的解决方案之外,没有其他内置解决方案。如果您愿意添加额外的依赖项,则可以使用MS BCL Portability Pack向以前版本的.NET提供CallerMemberNameAttribute
,或者按照Thomas的帖子重新创建评价。