18

内部メール報告用のライブラリを開発しました。別のプロジェクトからそのライブラリを使用している場合(参照を追加することにより)。

次の行で与えNullReferenceExceptionます。

System.Reflection.Assembly.GetEntryAssembly().GetName().Name

Assembly が null である理由は何ですか?

4

3 に答える 3

27

これは、アンマネージ ランタイムによって読み込まれる Windows サービスで特に予想されます。

使用する:

  Process.GetCurrentProcess().MainModule.FileName

アンマネージ エントリ ポイント ファイルを取得します。


アップデート

あなたはこれを探しているようです:

  System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
于 2011-02-25T12:23:02.870 に答える
2

問題は解決しました

私は使っている

Assembly.GetAssembly(ex.TargetSite.DeclaringType.UnderlyingSystemType).GetName().Name 

EntryAssemblyName を取得します。
この場合、例外「ex」を受け取るパラメーターが既にあるため、それを使用して解決しました。

どうもありがとう、特に@Aliostad

乾杯

于 2011-02-25T16:27:45.177 に答える