public static short Initialize(void *xlAddInExportInfoAddress, void *hModuleXll, void *pPathXLL) { string pathXll = Marshal.PtrToStringUni((IntPtr)pPathXLL); AssemblyManager.Initialize((IntPtr)hModuleXll, pathXll); _alc = new ExcelDnaAssemblyLoadContext(pathXll); var initOK = XlAddInInitialize((IntPtr)xlAddInExportInfoAddress, (IntPtr)hModuleXll, pathXll, AssemblyManager.GetResourceBytes, Logger.SetIntegrationTraceSource); return(initOK ? (short)1 : (short)0); }
internal static void Initialize(IntPtr hModule, string pathXll #if NETCOREAPP , ExcelDnaAssemblyLoadContext alc #endif ) { AssemblyManager.hModule = hModule; AssemblyManager.pathXll = pathXll; #if NETCOREAPP AssemblyManager.alc = alc; #endif loadedAssemblies.Add(Assembly.GetExecutingAssembly().FullName, Assembly.GetExecutingAssembly()); }
public static short Initialize(void* xlAddInExportInfoAddress, void* hModuleXll, void* pPathXLL) { string pathXll = Marshal.PtrToStringUni((IntPtr)pPathXLL); _alc = new ExcelDnaAssemblyLoadContext(pathXll); AssemblyManager.Initialize((IntPtr)hModuleXll, pathXll, _alc); var loaderAssembly = _alc.LoadFromAssemblyName(new AssemblyName("ExcelDna.Loader")); var xlAddInType = loaderAssembly.GetType("ExcelDna.Loader.XlAddIn"); var initOK = (bool)xlAddInType.InvokeMember("Initialize", BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod, null, null, new object[] { (IntPtr)xlAddInExportInfoAddress, (IntPtr)hModuleXll, pathXll, (Func<string, int, byte[]>)AssemblyManager.GetResourceBytes, (Func<string, Assembly>)_alc.LoadFromAssemblyPath, (Func<byte[], byte[], Assembly>)_alc.LoadFromAssemblyBytes, (Action<TraceSource>)Logger.SetIntegrationTraceSource }); return initOK ? (short)1 : (short)0; }