第一个问题:
我正在使用一些外部业务库,例如它们有奇怪的命名空间System.Web.UI.Page
。对此无能为力。加载库时在 ASP.NET 中出现问题,一切正常,但在显示页面时出现问题:
CS0433:“System.Web.SessionState.IRequiresSessionState”类型存在于两者中
所以基本上 C# 尝试编译页面 - 但不知道该类型使用哪个库
我找到了外部别名的解决方案,但是,设计器出现问题,因为每次我修改页面时都会破坏命名(真的很难维护) - 设计器将从 切换名称"MyNewExternalAlliase"->"Global"
,或者在添加新的 ellemnts 时,它们将显示为 global:: . 这将非常耗时。
问题 :
如果我能以某种方式注入进程并进行简单的字符串替换,我可以为 ASP.NET 页面/控件修改这个自动生成的代码吗?我可以使用双别名,一切都会正常工作。为了澄清,我的意思是这种文件:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\f3552813\29b6906c\App_Web_XXXXX.aspx.65a2d1ee.p58-fzio.0.cs
更新 1. 你们不明白问题,标准系统库 System.Web 有类 System.Web.UI.Page,我在运行时加载的库具有相同的类型(命名空间和类)。现在当 ASP.net 编译页面时 - *.aspx, *.ascx 文件被编译 - 它无法告诉它应该使用哪个库并且我得到错误:
CS0433:两个 dll 中都存在“System.Web.UI.Page”类型