使用UWP中的System.Reflection.Emit动态创建类

时间:2016-06-16 11:19:09

标签: uwp uwp-xaml

使用UWP中的System.Reflection.Emit动态创建一个类。在UWP AppDomain.CurrentDomain.DefineDynamicAssembly丢失。请提出任何解决方案。

2 个答案:

答案 0 :(得分:1)

从我通过Windows 10 API阅读并尝试自己编写代码,AppDomain根本不可用。尽管TypeBuilder和AssemblyBuilder API显示它在Windows 10中受支持,但这似乎是错误的。它实际上并不存在于System.Reflection和System.Reflection.Emit的UWP版本中。 AppDomain也没有。

Windows 10 Supported Reflection Types

答案 1 :(得分:1)

您需要在项目中包含System.Reflection.Emit的Nuget包。他们已经将部分API分解为单独的包。

然后,您可以使用AssemblyBuilder.DefineDynamicAssembly方法在UWP项目的内存中创建程序集。

但这不适用于.NET Native Toolchain,这意味着您可能无法提交到商店:

https://blogs.windows.com/buildingapps/2015/08/20/net-native-what-it-means-for-universal-windows-platform-uwp-developers/#8t4LmYa5JGBQXsRk.97

https://docs.microsoft.com/en-us/windows/uwp/packaging/packaging-uwp-apps