gpt4 book ai didi

c# - 在 WinPhone 中使用 PCL 中的 System.ComponentModel.DataAnnotations 就像 "microsoft bcl portability pack"一样?

转载 作者:太空狗 更新时间:2023-10-29 21:44:35 24 4
gpt4 key购买 nike

我有一个针对以下对象的可移植类库:

.NET + Silverlight + WinRT + WinPhone + Android + iOS

WinPhone 中不存在“System.ComponentModel.DataAnnotations”命名空间

所以我无法在我的代码中访问该命名空间

我怎样才能像“microsoft bcl portability pack”一样解决这个问题

此包提供对属性和类(如“CallerMemberNameAttribute”)的访问,但在运行时它会将这些类映射到它们的等效实现(如果存在)。

来自“http://www.nuget.org/packages/Microsoft.Bcl/”:

这些类型与其对应的更高版本“统一”。例如,在 .NET Framework 4.5 上运行时,来自此包的 IProgress 将被运行时视为与平台中已有的类型相同。

最佳答案

你应该能够使用 "Bait and Switch" PCL technique 来做到这一点.

在这种情况下,您将创建数据注释属性的可移植实现,并在支持“真实”版本的平台上“切换”到一个类型转发到这些版本的库。另请参阅此答案:https://stackoverflow.com/a/16046668/1509

如果你这样做了,如果你能把它作为一个OSS项目和一个包发布到NuGet上,这样其他人就可以从中受益,那就太好了。这是一个相当普遍的要求。

关于c# - 在 WinPhone 中使用 PCL 中的 System.ComponentModel.DataAnnotations 就像 "microsoft bcl portability pack"一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23967221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com