我正在使用反射来注册控制反转的默认实例。我需要扫描所有已加载的程序集,然后遍历每个类型并注册。问题是,在我的visual studio代码文件中,我没有方法Assembly.GetExecutingAssembly()
或我通常期望的任何其他方法。
为什么会这样。我的代码应如下所示:
foreach (var type in (Assembly.GetExecutingAssembly().GetTypes())
{
if (type.IsClass && !type.IsAbstract)
{
//registers the type for an interface it implements
}
}
答案 0 :(得分:7)
你不能像你发现的那样在WinRT中执行程序集 - 但你可以输入"你的程序集" - typeof(AnyTypeInYourAssembly).GetTypeInfo().Assembly
答案 1 :(得分:0)
我对此进行了更多研究,结果发现问题在于Windows Phone 8.1应用程序与WinRT应用程序具有相同的限制。 WinRT运行时没有GetExecutingAssembly方法。
你被迫使用变通办法。