我有一個可移植的庫,用於Windows Phone 7.1及Windows Store應用程序(用於WinRT),它使用.net 4.5框架。在便攜式庫中使用CallerMemberName屬性
我想使用新的[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]
?我可能錯過了一些東西。
我寧可不使用外部庫(尤其是剛爲)。如果他們設法做到這一點,我想我也可以。我無法找到源代碼,所以我想這不是一個開源項目...:/無論如何。 –
@Ashen:你可以自己聲明屬性 - 但是你需要考慮類型重定向的所有方面。微軟已經專門提供這個軟件包來解決這類問題。這感覺對我來說是一個相當合理的依賴... –
確實。它也增加了任務,這很好:) –