Использование Windows UWP Windows.Devices.SerialCommunication.SerialDevice из библиотеки универсальных классов

Я делаю библиотеку Modbus (снова ...). На этот раз он предназначен для работы в Windows 10 IoT Core.

Я столкнулся с интересной проблемой. Этот кусок кода:

string aqs = SerialDevice.GetDeviceSelector();
var dis = await DeviceInformation.FindAllAsync(aqs);

var port = await SerialDevice.FromIdAsync(dis[0].Id);

if (port != null) {
    port.BaudRate = 9600;
    port.DataBits = 8;
    port.StopBits = SerialStopBitCount.One;
    port.Parity = SerialParity.None;
    port.Handshake = SerialHandshake.None;
    port.ReadTimeout = TimeSpan.FromMilliseconds(1000);
    port.WriteTimeout = TimeSpan.FromMilliseconds(1000);
}

Используется из универсального приложения работает отлично. Конечно, если вы добавите следующий код в Package.appxmanifest:

<Capabilities>
     <DeviceCapability Name="serialcommunication">
         <Device Id="any">
             <Function Type="name:serialPort" />
         </Device>
     </DeviceCapability>
 </Capabilities>

Используется из Universal Class Library (Файл -> Новый проект -> ... -> Windows -> Универсальный -> Библиотека классов (Universal Windows) в VS2015) создает исключение Null Reference из mscorlib.dll, которое аналогично удалению DeviceCapability из Package.appxmanifest универсального приложения.

Я подозреваю, что это поведение связано с тем, что у библиотеки классов нет файла манифеста и, следовательно, нет соответствующих разрешений.

Могу ли я использовать Windows.Devices.SerialCommunication из библиотек классов?

Microsoft заставляет меня говорить пользователям: «Эй! Я сделал для вас бесполезную библиотеку, для которой вам придется самостоятельно реализовывать транспортный уровень в любом из ваших приложений ». ?

Ответы на вопрос(1)

Ваш ответ на вопрос