Use AssemblyBuilder from System.Reflection.Emit package in BizInvoke

This commit is contained in:
YoshiRulz 2021-07-27 18:01:35 +10:00
parent 4f7a641453
commit 28abcac463
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
3 changed files with 3 additions and 2 deletions

View File

@ -23,7 +23,7 @@ namespace BizHawk.BizInvoke
static BizExvoker() static BizExvoker()
{ {
var aname = new AssemblyName("BizExvokeProxyAssembly"); var aname = new AssemblyName("BizExvokeProxyAssembly");
ImplAssemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(aname, AssemblyBuilderAccess.Run); ImplAssemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(aname, AssemblyBuilderAccess.Run);
ImplModuleBuilder = ImplAssemblyBuilder.DefineDynamicModule("BizExvokerModule"); ImplModuleBuilder = ImplAssemblyBuilder.DefineDynamicModule("BizExvokerModule");
} }

View File

@ -7,6 +7,7 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="System.Reflection.Emit" Version="4.7.0" />
<ProjectReference Include="$(ProjectDir)../BizHawk.Common/BizHawk.Common.csproj" /> <ProjectReference Include="$(ProjectDir)../BizHawk.Common/BizHawk.Common.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -89,7 +89,7 @@ namespace BizHawk.BizInvoke
static BizInvoker() static BizInvoker()
{ {
var aname = new AssemblyName("BizInvokeProxyAssembly"); var aname = new AssemblyName("BizInvokeProxyAssembly");
ImplAssemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(aname, AssemblyBuilderAccess.Run); ImplAssemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(aname, AssemblyBuilderAccess.Run);
ImplModuleBuilder = ImplAssemblyBuilder.DefineDynamicModule("BizInvokerModule"); ImplModuleBuilder = ImplAssemblyBuilder.DefineDynamicModule("BizInvokerModule");
ClassFieldOffset = BizInvokerUtilities.ComputeClassFirstFieldOffset(); ClassFieldOffset = BizInvokerUtilities.ComputeClassFirstFieldOffset();
StringOffset = BizInvokerUtilities.ComputeStringOffset(); StringOffset = BizInvokerUtilities.ComputeStringOffset();