Отсутствующие конструкторы FileStream: FileStream (дескриптор SafeFileHandle, доступ к FileAccess, int bufferSize, bool isAsync)

Я перемещаю некоторый код из консольного приложения Win32 в Unity. Я был осторожен, чтобы сохранить Win32-код, использовать только .Net 2.0 вещи и не использовать «небезопасно», но конструктор, который я использую для FileStream, кажется, нет:

fs = new FileStream(hidHandle, FileAccess.ReadWrite, InputReportByteLength, true);

т. е. вызов

public FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync);

Глядя в исходном коде mono, я вижу нужный мне конструктор, но его нет в Unity.

Если я «иду к определению» в Visual Studio, мне нужен конструктор, упомянутый в комментарии:

[Obsolete("Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead")]
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);

Где это?

Существует ли другой, дружественный Unity, способ сделать асинхронный поток файлов из SafeFileHandle в перекрывающийся файл ввода-вывода устройства?

1 ответ

  1. Я получил ответ от steo на Unity Answers здесь:

    Способ получить полные библиотеки DLL .Net с конструктором, который вы хотите:

    Выберите Edit->Project Settings->Player->OtherSettings->Api Compability Settings-> .Net2.0 (not subset).

    Затем регенерировать .csproj файлы select Assets->Open C# project.