【发布时间】:2016-02-19 11:46:00
【问题描述】:
我正在尝试将我的桌面 .NET dll 编译到 WinRT 平台(目标 Windows 8.1)。它在桌面上运行良好,但在 WinRT 项目中我的代码中有编译器错误:
internal static T[] CreateRuntime<T>(MemberInfo member, bool inherit)
{
return member.GetCustomAttributes(typeof(T), inherit).Select(attr => (T)attr).ToArray();
}
我不能将 Attribute attr 转换为通用参数 T... 但为什么只能在 WinRT 上?语言上是否有任何差异或可能导致这种情况的原因?
【问题讨论】:
-
您是否设置了约束
where T : Attribute?T的定义会很有用 -
@Rob 谢谢,但我的问题是关于编译器差异 - 不是代码审查;)顺便说一句,当我输入
T : Attribute时,错误消失了。
标签: c# compiler-errors windows-runtime windows-8.1 system.reflection