PCL中不存在Assembly.GetExecutingAssembly

Tod*_*ain 15 .net vb.net reflection portable-class-library

我在VB,VS2012中设置了PCL并将其设置为Profile 78(WinRT,WinPhone8,.NET 4.5).我没有GetExecutingAssembly可用的Assembly.根据这个,应该是提供给PCLS.唯一可用的方法是Assembly.Load().

有谁应该用这个做什么?例如,这是真的,我的环境搞砸了,还有另一种方式可以访问GetExecutingAssembly其他Imports System.Reflection?还有其他想法吗?

Dan*_*ted 29

在一般情况下,你应该使用类似typeof(MyType).GetTypeInfo().Assembly的代替Assembly.GetExecutingAssembly().GetExecutingAssembly必须基本检查调用堆栈以找出调用它的方法,然后查找相应的程序集.如果跨越程序集边界内联方法,这可能会中断,这就是GetExecutingAssembly方法不在Profile 78(以及适用于Windows应用商店应用程序的.NET)使用的"新"反射表面区域的原因.