c# - 没有源代码的 ASP.NET 扩展应用程序

标签 c# asp.net

我需要扩展一些 Web 应用程序,可能是在 ASP.NET 网页中。只需添加一个函数,一个非框架 PHP 等效项将上传一些 newfunc.php 文件

它只有一个问题——我没有源代码(尝试了 3 个月),只能访问虚拟主机上的 .dll。我可以想象几个解决方案:

  • 创建一个包装器库,它将导出与原始 DLL 相同的函数 + 一个新函数
  • 向 WebSite.dll 注入(inject)一些功能(ildasm,添加自己的代码,ilasm 甚至直接?)
  • 完全反汇编回 C# 代码(不知道是否(仍然?)可能,10 年前它可以用 Reflector 完成)。
  • 重写整个站点(相当耗时:))

前两个可以揭示路由问题,因为网站路由例程不知道新“页面”。我对 ASP.NET 没有太多经验。

我应该使用哪种解决方案或者是否有其他方法可以做到这一点?谢谢!

最佳答案

我知道这可能来得太晚了,但值得的是,这是我的 2 美分。

只有当代码是使用调试信息构建的(并且 DLL 没有被混淆)时,反汇编才有用。

除此之外,我真的取决于代码结构。这将限制您可以做什么和不能做什么。

我会做的是这些方面的事情:

  1. 反编译 DLL 并查看方法
  2. 确定必须覆盖的方法,并使它们可覆盖
  3. 如果类是密封的,则删除该属性
  4. 创建一个继承自您需要扩展的类的类
  5. 覆盖必要的方法并创建新的方法
  6. 新方法应该放到新的 DLL 中
  7. 重新编译反汇编的 DLL

根据 ASP.NET 版本,您可能必须在 ASPX 文件中更改代码隐藏类以指向您的新类。

希望这对您有所帮助,您所处的情况一团糟:)

关于c# - 没有源代码的 ASP.NET 扩展应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37163747/

相关文章:

c# - 防止窗口焦点更改

c# - Csharp 线程在一个完成而不等待加入时启动新线程

c# - 推特 Bootstrap : Dropdownlist and Textbox doesn't align properly

asp.net - c#中的搜索函数

c# - WCF新手问题: Calling Methods from JavaScript

c# - github repo 是否也应该有 nuget packages 文件夹?

c# - 读取 XML 节点时出现问题

c# - C# 中的配置保存模式

asp.net - HTTP 500 内部错误 - IIS 网站

c# - css @media print 不起作用