既存の.NET 4コードを修正して、null可能な整数で構成される新しいプロパティを作成しました。それはWindowsサービスで動作します。null可能な整数をプロパティにする際に問題が発生するのはなぜですか?
public static int? Port
{
get;
set;
}
コンセプトは、値がnullだった場合、それは無視されましたが、それは、その後でなかった場合、それが使用されたということでした(デフォルト以外のシナリオ)私のマシン上で
if (Port != null)
{
client = new Client(Server, Port.Value);
}
else
{
client = new Client(Server);
}
、それはのように動作します期待される。
しかし、テストサーバーにデプロイすると、ASP.NETサイトから呼び出されたときに例外が発生します。
Exception: System.MissingMethodException
Exception Message: Method not found: 'Void NameOfAssembly.set_Port(System.Nullable`1<Int32>)'.
Exception Data: System.Collections.ListDictionaryInternal
Exception TargetSite: ** Unable to GetValue **
Exception HelpLink: NULL
それはコードが正しく展開されていなかったのどちらかかのようだ、またはそれだけで自動取得/設定メソッドを見つけることができません。ここでフォーマットされた例外出力です。同僚は私たちのテスト環境で動作するその後の変更を行ったので、それは配備の問題ではないと思います。
Windows Server(2008 R2)が私が開発したWindows 7とは異なる方法で動作する可能性を除いて、何らかの理由が考えられませんでしたが、それはストレッチです。
誰もこれまでにこれまで見たことがありますか?
しかし、私はそれが本当の問題だとは思わない。 –
True;これはもっとスタイルの問題です。 'Port!= null'を使うことは完全に合法です。 –
-1。このスタイルには何も問題はありませんが(またはnullと比較すると、どちらも同じコードにコンパイルされます)、これは全く問題にはなりません。 –