最初の問題:
私はいくつかの外部ビジネス ライブラリを使用していますが、たとえば奇妙な名前空間を持っていますSystem.Web.UI.Page
。それについては何もできません。ライブラリが読み込まれると ASP.NET で問題が発生します。問題はありませんが、ページを表示するときに問題が発生します。
CS0433: タイプ 'System.Web.SessionState.IRequiresSessionState' が両方に存在します
したがって、基本的にC#はページをコンパイルしようとしますが、このタイプに使用するライブラリはわかりません
外部エイリアスで解決策を見つけましたが、ページを変更するたびにデザイナーに問題があり、命名が壊れます(管理が非常に困難です)-デザイナーは名前をから切り替える"MyNewExternalAlliase"->"Global"
か、新しい要素を追加するときに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: タイプ 'System.Web.UI.Page' が両方の dll に存在します