1

第一个问题:

我正在使用一些外部业务库,例如它们有奇怪的命名空间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”类型

4

1 回答 1

2

使用临时文件和目录不是一个好的模式。解决方案是修改代码 - 请举个例子。

于 2013-01-06T13:07:04.150 回答