Мы используем библиотеку типов служб Windows COM + (находится в C: \ Windows \ system32 \ COMSVCS.dll) для отслеживания процессов COM + на удаленной машине с помощью службы, написанной на C # 3.0 / .NET 3.5. Проблема, с которой я сталкиваюсь, заключается в том, что я получаю множество предупреждений от компилятора, которые выглядят примерно так:
хотя бы один из аргументов для
'IGetAppData.GetApps' не может быть
маршаллировал маршалером во время выполнения.
Поэтому такие аргументы будут
передается как указатель и может потребовать
небезопасный код для манипулирования.
Сгенерированная сигнатура функции взаимодействия для упомянутого выше метода:
void IGetAppData.GetApps(out uint nApps, IntPtr aAppData)
Поскольку выходные данные уже распределяются вручную в вызывающем коде (т. Е. С использованием Marshall.ReadInt32
и Marshall.PtrToStructure
), есть ли способ подавления предупреждений такого типа?