我们在Windows Phone 8.1运行时应用中使用Lumia.Imaging.SDK 2.0。出于某种原因,Microsoft无法在Lumia.Imaging.RandomAccessStreamImageSource类上设置ActivatableAttribute。因此,此类不会在appxmanifest.xml中标记为ActivatableClass。当然,尝试实例化此类会导致以下错误。
类型' System.TypeLoadException'的第一次机会异常。发生了 在MyApp.exe中请求的Windows运行时类型 ' Lumia.Imaging.RandomAccessStreamImageSource'没有注册。
有没有人知道如何在运行时将此类注册为可从C#激活?或者,有没有办法去" hack" Lumia.Imaging.winmd包含ActivatableAttribute?
感谢您的帮助。
答案 0 :(得分:2)
我遇到了同样的问题。这是工作解决方案。 手动将这些行添加到 Package.appxmanifest (使用任何文本编辑器):
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>Lumia.Imaging.dll</Path>
<ActivatableClass ActivatableClassId="Lumia.Imaging.RandomAccessStreamImageSource" ThreadingModel="both" />
</InProcessServer>
</Extension>
</Extensions>
前
</Package>
确保您的主(可执行)库引用了Lumia.Imaging.dll
答案 1 :(得分:0)
确保您拥有最新版本。我从MSDN下载了快速入门,它在手机和桌面Windows上都能很好地工作(你必须将Lumia NuGet包从2.0.178-alpha
更新到2.0.184
)。
示例代码使用RandomAccessStreamImageSource
没有问题(通过调试调试器中的代码行进行验证)。