次のコードを含む .NET 5 クラス ライブラリを作成しています。
public T[] ConvertToArray<T>(BitmapFrame frame, int samplesPerPixel) where T:struct
{
var pixelWidth = frame.PixelWidth;
var array = new T[pixelWidth * frame.PixelHeight * samplesPerPixel];
var stride = pixelWidth * Marshal.SizeOf(typeof(T)) *samplesPerPixel;
frame.CopyPixels(array,stride,0);//this line prevents the code from compiling
return array;
}
の行でframe.CopyPixels
、次のコンパイル エラーが発生します。
CS7069 タイプ 'Freezable' への参照は、それが 'WindowsBase' で定義されていると主張していますが、見つかりませんでした。モジュール 'WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf385ad364e35' を参照する必要があります
このパスから WindowsBase.dll への参照を追加しようとしています: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.8\WindowsBase.dll
しかし、次のエラーが表示されます: 参照が無効であるか、サポートされていません
奇妙な点は、Freezable がMicrosoft のドキュメント の.NET 5 の下にリストされていることです。おそらく問題は、.NET Framework 用の WindowsBase.dll を使用していることですが、.NET 5 バージョンがどこにあるのかわかりません。
これを解決してコードをコンパイルする方法はありますか?
ありがとう!