私はSilverlightでMiscUtil.Conversionユーティリティを使用しようとしています。私はそれをコンパイルしようとすると http://www.yoda.arachsys.com/csharp/miscutil/SilverlightのBigEndianBitConverter?
が、私はSilverlightののBitConverterクラスは、これらの2つの方法がないというエラーが出ます:
DoubleToInt64Bits Int64BitsToDouble
まあが、私はリフレクターを開いて、mscorlibでそれらを発見しました:
public unsafe long DoubleToInt64Bits(double value)
{
return *(((long*)&value));
}
public unsafe double Int64BitsToDouble(long value)
{
return *(((double*) &value));
}
しかし、問題は、Silverlightでは安全でないコードが許可されないということです。プロジェクトのプロパティメニューには、「安全でないコードを許可する」の横に空のチェックボックスがありますが、値を変更することはできません。
Silverlightでこれを行うにはどうすればよいですか?
ああ、そうです。私のPCはBitConverter.IsLittleEndianをtrueにしていますが、Mac上でfalseになるのだろうかと思います。 私はチェックを追加します: if(BitConverter.IsBigEndian) bytes = bytes.Reverse()。ToArray(); –
Reflectorによると、これらのメソッドはデスクトップマシン上では安全ではないとマークされています。彼らはSilverlightでそれらを通常の方法にすることができましたか? –
私は、実装上安全ではないかもしれないが、MSがSilverlight用にそれらを利用できるように十分信頼できると思う。結局のところ、あなたがファイルシステムやグラフィックスなどを呼び出すつもりなら、遅かれ早かれ安全でないコードを打つことになります。これらのことを知ってうれしい* do * Silverlight上に存在する... –