News for hackers. Stuff that matters.
Re:C# 9 top-level programs and target-typed expressions by zwieback on Wednesday March 31, 2021 @12:24AM (#26643502)
Thanks, I'll give it a try. I've done a lot of interop in Windows so it'll be good to leverage to Linux.
Re:C# 9 top-level programs and target-typed expressions by merb on Wednesday March 31, 2021 @07:21AM (#26645839)
it's a little bit harder when your linux library is not inside LD_LIBRARY_PATH or the windows one is not inside a path. but there are tricks to override the loading behavior, it's just a little bit tricky since you need a loading context, which can load other c# dll's without having a reference to them.

it's basically like that: AssemblyLoadContext loads the managed assembly (like YourPackage.NativeApi which contains the DllImport) and the AssemblyLoadContext that loads via LoadUnmanagedDll all paths to the DllImports. you also need a Shared Library for the calling package and the dll import package so that you can do (Type)Activator.CreateInstance(LoadContext.LoadFromAssemblyName(YourDllImportAssemblyName))