您在Visual Studio中加载带有附加库的外部代码示例。现在有一种您要在代码中重用的方法。 VS中是否有一个功能,可让您从所有不必要的代码中剥离代码,只保留当前方法运行所必需的代码?
与图书馆无关。当您只想使用一种方法时,加载.sln或.csproj并在类之上提供类,会浪费性能,内存和空间。它是关于您可以轻松省略的代码或可以轻松省略的引用(我称为库)的信息。这个问题的一部分是:您需要哪个“使用”语句仅对您当前的方法和将参数传递给它的方法是必需的?简而言之,仅显示相关代码。相互关联的代码。
让我们使用一个示例:您转到github并用c#下载源代码。我们将解决方案称为S。在Visual Studio中打开S。您无需反汇编,只需加载S的源代码,即纯文本格式。然后,找到要使用的方法M(以纯文本格式)。 M包含一些对象,这些对象的类在项目中的某个位置定义。目标是仅重新创建此方法的周围环境,然后将其复制并粘贴到我自己的解决方案中,而方法中几乎每一行中都没有红色带下划线的单词
答案 0 :(得分:0)
在阅读了问题和评论之后,我想我对您所指的内容含糊不清。
如果我们忽略了所引用方法的上下文,则可以使用.NET反编译器和汇编浏览器从“库”中提取任何代码段。
其中有许多免费的,例如:
这将允许您查看方法的代码。从那里开始,您可以随意进行。如果将方法复制到代码库中,则可能仍需要对其进行一些更改,以使其适应于对象和上下文。如果不这样做,这将使您深入了解该方法的工作方式,并可能有助于您理解逻辑,因此您可以编写自己的方法。
免责声明:在这篇文章中,我指出可以从程序集中提取代码。我不是在讨论此类行为背后的道德或法律观点。
希望这会有所帮助, 祝您编码愉快!
答案 1 :(得分:0)
如果只是一种方法,请查看源代码并将其复制到您的库中。确保在获得代码的地方以及拥有版权的人中进行注释!别忘了包括许可证,无论如何您都应该使用一个图书馆参考书来完成该许可证。
这表示当前(官方)不可能从库(程序集)中自动删除未使用的公共声明的代码。顺便说一下,此过程称为“摇树”。例外:.NET本机。
但是.NET Native仅适用于Windows Store Apps。您可以详细了解here。
这就是说,我们拥有真正智能的JIT(及时)编译器。我不用担心几个KB库代码。花时间优化SQL查询和其他瓶颈。仅加载类when you actualy use them。
使用一些不稳定的解决方案或维护一个库的分支,在其中使用一种以上的方法(没有文档,也没有专业知识,因为这是您自己的分支)就不值得头疼了!
如果您确实想删除所有不需要的内容,可以打开解决方案,将所有内容声明为internal
(搜索和替换是您的朋友),然后将这些部分恢复为公开状态。给你的是Buildtime错误/ Runtime错误(反射)。然后删除内部的所有内容。有多种DesignTime工具(例如Resharper)可以删除死代码。
但是正如我所说,这不值得!
对于.NET Core用户,在6-8 weeks中,我们将.NET IL Linker命名为spender has commented,这看起来很有希望。这是什么意思? .NET框架会不时地发展。让它不断发展,同时查看您的生产率。