【问题标题】:Visual Studio 2012 CallerMemberName could not be found找不到 Visual Studio 2012 CallerMemberName
【发布时间】:2014-06-13 02:26:25
【问题描述】:

我刚刚安装了 Visual Studio 2012,因此我可以利用更好的方法来使用 Silverlight 实现 MVVM。

我想做的第一件事是开始使用 [CallerMemberName] 属性,这样我就不必对属性名称字符串进行硬编码。

我创建了一个新的 Silverlight 应用程序,创建了一个新类,包括“使用 System.Runtime.CompilerServices”,然后继续键入 [CallerMemberName]。但是,我得到了错误:

“找不到类型或命名空间名称'CallerMemberNameAttribute'(您是否缺少 using 指令或程序集引用?)”

但是,我确实包含了 using 指令,并且没有其他需要引用的程序集。

这把我逼疯了,因为谷歌搜索没有返回任何关于为什么我可能无法在 VS2012/Silverlight 中使用它的信息。我该如何解决这个问题?

【问题讨论】:

  • Silverlight 的哪个版本?
  • Silverlight 5。我现在在 VS2013 中尝试过,我得到了相同的结果 - 未找到。
  • 正确,因为该属性不是 Silverlight 5 的一部分。您可以根据 SLaks 的答案创建自己的属性,也可以使用 nuget.org/packages/Microsoft.Bcl
  • 不知道为什么它不是 Silverlight 5 的一部分。它可用于以前的版本吗?
  • 这个属性是在 .NET 4.5 中引入的,它的发布时间比 Silverlight 5 晚得多。

标签: c# silverlight visual-studio-2012


【解决方案1】:

您所定位的 Silverlight 版本似乎不包含该属性。

不过,没关系;您可以简单地自己定义:

namespace System.Runtime.CompilerServices {
    sealed class CallerMemberNameAttribute : Attribute { }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多