Я медленно создаю библиотеку кода для использования в нескольких приложениях. Некоторым кодом является обработка изображений и ранее существовавших форматов сообщений (преобразованных из C++), поэтому требуется небезопасный код.C# Смешанная небезопасная/безопасная библиотека
Любые причины, по которым я не должен вообще смешивать небезопасный и безопасный код в той же библиотечной сборке больше, чем мне нужно?
Другими словами: следует ли хранить чистую библиотеку и собирать небезопасный код в другую библиотеку/библиотеки?
Я ценю, что есть проблемы доверия, которые следует учитывать при использовании «небезопасных» библиотек, но поскольку эти функции имеют решающее значение для большинства моих приложений, действительно ли это имеет значение? Любой из моих кодов, безопасный & небезопасен, доверен или ему не доверяют, и мое приложение не будет запущено. Или я пропущу точку?
«так небезопасный код не требуется» Я бы так не был уверен в этом. Вы обнаружите, что с небольшим «готовым» мышлением вы можете в значительной степени преобразовать старый код на C++ в безопасный код C#. – Polity
Правда. С другой стороны, у меня есть несколько случаев кода на C/C++, который делает шифрование и форматирование данных, которые я бы не стал возиться со слишком много. Этот код сильно зависит от обработки указателей, поэтому при преобразовании в C# мне нужно переходить в области небезопасного кода на порт с минимальными изменениями. FWIW Я думаю, что чтение байтового массива из потока памяти - довольно хороший способ переходить через данные в память. –
Кроме того, при работе с пиксельными данными непосредственно в растровых изображениях, как представляется, для лучшей производительности рекомендуется получить данные пикселов в объект BitmapInfo и переходить через пиксели через указатель на небезопасный код. Во всяком случае, это тот код, который у меня есть на данный момент. Возможно, однажды я найду какое-то время для повторной реализации безопасным способом ... –