gpt4 book ai didi

c# - 是否可以内部化/IL 合并单个 C# 类?

转载 作者:行者123 更新时间:2023-11-30 12:21:17 26 4
gpt4 key购买 nike

我有一个应用程序引用了一个相当大的库 DLL(我们称之为 lib.dll),但它只使用其中的一个类(我们称之为 Helper)。

lib.dll 有额外的传递引用,它们在编译时都被复制到我的项目的 bin 文件夹中。

我非常想避免这种开销,并找到一种方法将构成 Helper 的代码“复制”或“交叉编译”或“合并”到我的主项目中。

有没有可能这样做?我想避免 IL 合并 lib.dll 的完整性。

最佳答案

在某些情况下,您可以将第三方 dll 作为嵌入式资源嵌入并自行解析引用,如 Jeffrey Richter 所述here .

简而言之,在您的入口点:

AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => {
string name = new AssemblyName(args.Name).Name;

// Either hardcode the appropriate namespace or retrieve it at runtime in a way that makes sense for your project.
string resourceName = string.Concat("My.Namespace.Resources.", name, ".dll");

using(var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) {
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);

return Assembly.Load(buffer);
}
};

关于c# - 是否可以内部化/IL 合并单个 C# 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45999964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com