Преобразуемые типы .NET Compact Framework
Обновлен: Ноябрь 2007
Тип считается сопоставимым, если у него есть общее представление в управляемой и в неуправляемой памяти, и поэтому не требуется специальной обработки маршалером взаимодействия для преобразования в неуправляемый или управляемый код.
Сопоставимые типы в обеих платформах.
Следующие типы, определенные в пространстве имен System являются сопоставимыми типами и в .NET Framework, и в .NET Compact Framework:
Сопоставимыми являются и следующие комплексные типы:
Одномерные массивы сопоставимых типов.
Типы форматированных значений, содержащие только сопоставимые типы. Так как в .NET Compact Framework у всех структур и классов всегда последовательное размещение, у типа управляемых значений такое же размещение памяти, как и у неуправляемой структуры.
Сопоставимые типы, имеющиеся только в .NET Compact Framework
.NET Compact Framework предоставляет следующие сопоставимые типы (в связи с их реализацией в среде CLR).
-
Это значение является однобитным целым числом. В полной версии .NET Framework, маршалинг по умолчанию Boolean соответствует атрибуту MarshalAsAttribute(UnmanagedType.Bool), который использует четырехбитное целое число.
-
Это всегда символ Юникода (2 байта), но полная версия платформы .NET Framework может обрабатывать его либо как символ Юникода, либо как символ ANSI, в зависимости от атрибута MarshalAsAttribute или поля DllImportAttribute.CharSet.
-
Он всегда обрабатывается как массив символов Юникода, но полная версия платформы .NET Framework может обрабатывать его либо как массив символов Юникода, либо как массив символов ANSI, либо как массив символов BSTR, в зависимости от атрибута MarshalAsAttribute или поля DllImportAttribute.CharSet.