0

私が得た:

using System.Diagnostics;
using System.Reflection;

namespace Site
{
    public abstract class General
    {

        private static string _version;

        public static string Version { get { return _version; } }

        static General()
        {
            Assembly assembly = Assembly.GetExecutingAssembly();
            FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
            _version = fileVersionInfo.ProductVersion;
        }

    }
}

コードは問題なく動作し、アクセスする必要がある場所ならどこでもバージョンを取得できますSite.General.Version。今、インライン タグを使用しようとしていますが、定義または「一般」が含まれていない<% = Site.General.Version %>というエラー メッセージが表示されますSystem.ComponentModel.ISite ISite

どうすればこれを解決できますか?

4

2 に答える 2

4

名前空間またはクラスの名前を変更することを強くお勧めします。時々それを機能させることができますが、これは戻ってきてあなたを噛むでしょう. また、コンパイラ エラーは非常に役に立ちません。これは、コードが書かれたときとは異なる時期に行われることが多いリファクタリングに影響を与えるため、特に悪いことです。私は経験から話します - 悪い考えです。

于 2012-07-02T22:22:34.910 に答える
3

これをaspxの先頭に追加してみてください

 <%@ Import Namespace="Site" %> 

そして、このようにコードを変更します

 <%= General.Version %>

編集

これは、web.config のすべてのページに対して実行する構文です。

<system.web>
      <pages>
           <namespaces>
                <add namespace="Site" />
           </namespaces>
      </pages>
</system.web>
于 2012-07-02T22:23:44.647 に答える