我可以替换ASP.NET页面使用的供应商提供的方法吗?

时间:2010-06-25 13:10:45

标签: c# asp.net assemblies

我们的内部人力资源应用程序是由供应商开发的,但是我已经被要求在没有他们帮助的情况下改变某个功能的行为(我不想做,但正在调查...... )。有问题的功能是.ashx页面,它执行许多数据库查找,并通过网页上的javascript函数调用。我们想要添加一个进一步的数据库查找。

我们可以控制javascript代码,因此这不是问题,但.ashx页面的代码保存在已编译的程序集中。我找到了它的位置,并使用.Net Reflector进行了调查。如果技术上可行,重新实施所涉及的方法并不困难。

我可以创建一个新的程序集,使用Reflector将源代码粘贴到其中,进行修改,将DLL添加到应用程序中,然后设置一个新的.ashx来引用它吗?

我担心不可能的是:

代码指的是其他程序集中的某些供应商类;我可以在Visual Studio中添加对这些程序集的引用以允许它进行编译,然后当它被编译并放到服务器上时它会全部工作吗?

我是否难以让Web应用程序接受新的DLL,因为通常这个应用程序不是我们自己做的更改?

编辑: 一些澄清:我实际上并不打算用我自己的DLL替换供应商的DLL,听起来有点太过分了。相反,我会创建一个新的DLL,只需要我需要的一个函数(基于使用Reflector从现有DLL中获取的东西)。我需要该代码来引用其他实用程序供应商代码,以便它可以获取访问框架所需的类。我将创建一个全新的.ashx页面来提供新DLL中的代码。

幸运的是,在这一切之后,我已经摆脱困境,因为我的客户同意事情并不是绝望的,我们无法尝试这一切!但感谢您的帮助,这绝对是有用的。

2 个答案:

答案 0 :(得分:0)

请参阅我对您正在考虑的方法风险的评论。

我真的不推荐整体方法,但是,可以引用你没有源代码的程序集;只需添加将使用它们的项目的引用。

替换.ashx的代码隐藏可能是可能的,具体取决于它是否已预编译。如果不是,那么我相信替换BIN文件夹中的DLL应该可以解决问题。 (假设没有其他程序集引用它。)(免责声明:我从未尝试过这个,我不推荐它。)

答案 1 :(得分:0)

如果你只是想获得一些额外的数据,我只是实现自己的查找并从Javascript调用它,而不是搞乱反射器。你有什么理由不这样做吗?