4

.net 4.5 フレームワークを使用する Windows Phone 7.1+ および Windows ストア アプリ (WinRT 用) を対象とするポータブル ライブラリがあります。

[CallerMemberName]その中で新しい属性を使用したいと思います。ただし、VS2012 から、この属性は私のポータブル ライブラリでは使用できないことがわかりました (WP7.1 プロジェクトでは使用できないため、これは正常なようです)。

それでも、次のスニペットを使用することで、独自の属性を作成でき、コンパイラーはそれを実際の属性のように理解できることがわかりました。

namespace System.Runtime.CompilerServices
{
  [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
  public sealed class CallerMemberNameAttribute : Attribute { }
}

ただし、コンパイルしようとするとすぐにエラーが発生しますThe type 'System.Runtime.CompilerServices.CallerMemberNameAttribute' exists in both 'Portable.dll' and 'mscorlib.dll'

[CallerMemberName]私はメッセージを理解していますが、ポータブル ライブラリで使用する方法があるかどうか知りたいですか? 私は何かを逃したかもしれません。

4

1 に答える 1

5

これらの属性を古いバージョンに提供するBCL Portability Packを使用してください。

このパッケージにより、.NET Framework 4、Silverlight 4 および 5、Windows Phone 7.5 (ポータブル ライブラリの組み合わせを含む) を対象とするプロジェクトで、次のような .NET の新しいバージョンの新しい型を使用できるようになります。

  • CallerMemberNameAttribute

  • CallerLineNumber 属性

  • CallerFilePathAttribute

  • ...

于 2013-05-15T12:22:52.373 に答える