可移植类库配置文件 78 缺少属性相关的方法/属性

Posted

技术标签:

【中文标题】可移植类库配置文件 78 缺少属性相关的方法/属性【英文标题】:Portable Class Library Profile 78 missing attribute related methods/properties 【发布时间】:2013-11-13 12:45:26 【问题描述】:

在我的 PCL 核心项目(WP8、androidios、Xamarin、MvvmCross)中,我使用自定义属性。 Type.GetCustomAttributes() 扩展方法让我检查使用的属性。

使用 PCL Profile104 效果很好。但是因为我想使用 async/await,所以我需要使用 PCL Profile78(和 .NET 4.5)

问题:似乎 GetCustomAttributes() 和 Attributes 属性在 Profile78 中不可用。为什么??

注意: 我正在通过创建 PCL Profile 104 类库并包装 GetCustomAttributes() 然后从我的 PCL Profile78 库中引用该库来研究解决方法。但是似乎不支持扩展方法...

示例代码:

public Pcl78Class()

    Type t = this.GetType();
    var attributes = t.Attributes;
    var customAttributes = t.GetCustomAttributes(true);

    // another weird thing: Why is VS CodeCompletion telling me it knows CustomAttributeExtensions class and methods?
    //System.Reflection.CustomAttributeExtensions.GetCustomAttributes(t);

【问题讨论】:

这也发生在 Profile7 中 【参考方案1】:

问题:似乎 GetCustomAttributes() 和 Attributes 属性在 Profile78 中不可用。为什么??

Profile78 includes support for Windows Store 8(如我的博客所述)和Windows Store has a more efficient implementation of Type-based reflection。本质上,您只需调用Type.GetTypeInfo 即可获得TypeInfo,从那里开始应该非常简单。

【讨论】:

嘿,我切换到 System.Reflection.GetTypeInfo - 但它总是返回 null。我正在尝试 Profile49。有什么建议吗? @skimania:这是一个与这个不同的问题,所以你应该将它作为一个单独的问题发布。然后更多的人会看到它,你会得到更好的答案。

以上是关于可移植类库配置文件 78 缺少属性相关的方法/属性的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop配置信息处理

如何根据所选配置将项目构建为可移植类库或普通类库?

带有 Visual Studio 2012 RC 的 MVC 4 / Razor 中的可移植类库?

Visual Studio中类库和可移植类库的区别

vs 2013 可移植类库 windows.props 未找到

可移植性