C# 查找dll依赖项

C# 查找dll依赖项,c#,dll,C#,Dll,我正在用C#构建一个程序,我使用了很多DLL。但是,我相信我只使用了每个dll中的少量函数,因此我想知道是否有可能以某种方式访问dll,并仅将使用过的函数提取到单独的dll中 换句话说,假设我有两个DLL A和B。A有函数A、B和c,B有函数1、2和3。如果我只使用a和2,是否有任何方法(或者它是否合法??)以某种方式使第三个dll C中只有a和2 目的是使我不必参考2(实际上更像是20),而只需要1 这可能/合法吗????我知道微软有一个工具,可以将DLL组合成一个,但我不知道如何编辑它们或其

我正在用C#构建一个程序,我使用了很多DLL。但是,我相信我只使用了每个dll中的少量函数,因此我想知道是否有可能以某种方式访问dll,并仅将使用过的函数提取到单独的dll中

换句话说,假设我有两个DLL A和B。A有函数A、B和c,B有函数1、2和3。如果我只使用a和2,是否有任何方法(或者它是否合法??)以某种方式使第三个dll C中只有a和2

目的是使我不必参考2(实际上更像是20),而只需要1


这可能/合法吗????我知道微软有一个工具,可以将DLL组合成一个,但我不知道如何编辑它们或其他任何东西。。。有人能解释一下吗?

@Mattb2291:我会建议一种不同的方法。以具有函数a和2的C类为例。类A和类B应该从C继承。在类C中,提供了方法A和方法2的基本实现

但对于某些事情,你需要记住:

首先,从OOPs的角度来看,A类和B类是否与同一个问题域相关? 其次,如果方法a和方法2正在访问各自类中的任何类成员,则必须将它们移动到类C。您的代码可能如下所示:

class C{
    void a(){
    }

    void 2(){
    }
}

class A:C{
}

class B:C{
}

这个答案是从OPP的角度得出的。在项目中实施之前,您必须验证它。

我不知道它是否合法(如果这些程序集是由Microsoft制作的,您应该仔细阅读EULA,如果是由第三方提供的,则应该仔细阅读用户许可证)。无论如何,要限制引用的数量,可以创建一个包含所有必要引用的库,例如名为“External/Helper Methods”,并将其用作唯一的存储库。这样,您将拥有一个引用,而不是20个引用。NotaBene:这个解决方案可能不适用,例如,如果您使用的方法在同一个程序集中定义了其他类作为参数。据我们所知,没有这样的事情。如果DLL是你的-我相信他们不是-你可以合并源。但你不能改变别人拥有的代码,也不能用这些代码“烤你自己的蛋糕”。。。我希望这永远不会成为可能,否则将是一片混乱。。。