[Serializable]
От: k732  
Дата: 20.01.07 21:13
Оценка:
почему для класса

[Serializable]
public class A
{
        [MarshalAs(UnmanagedType.I1)]
        public bool state = false;
        public uint value = 1;
}

[Serializable]
public class B
{
        public uint mode = 0;
        [MarshalAs(UnmanagedType.I1)]
        public bool view = false;
        public A a = new A();
}


метод

B b = new B();
int size = Marshal.SizeOf(b);


вываливает с исключением

 An unhandled exception of type 'System.NotSupportedException' occurred in mscorlib.dll
Re: [Serializable]
От: TK Лес кывт.рф
Дата: 20.01.07 21:26
Оценка:
Hello, "k732"
> почему для класса
>

А причем тут Serializable? Надо воспользоваться атрибутом StructLayout
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: [Serializable]
От: k732  
Дата: 20.01.07 21:31
Оценка:
TK>А причем тут Serializable? Надо воспользоваться атрибутом StructLayout

а что именно нужно сделать, чтоб маршалился класс ?
Re[3]: [Serializable]
От: TK Лес кывт.рф
Дата: 20.01.07 21:38
Оценка:
Здравствуйте, k732, Вы писали:

TK>>А причем тут Serializable? Надо воспользоваться атрибутом StructLayout

K>а что именно нужно сделать, чтоб маршалился класс ?

[StructLayout(LayoutKind.Sequential)]
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: [Serializable]
От: k732  
Дата: 20.01.07 21:43
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, k732, Вы писали:


TK>>>А причем тут Serializable? Надо воспользоваться атрибутом StructLayout

K>>а что именно нужно сделать, чтоб маршалился класс ?

TK>[StructLayout(LayoutKind.Sequential)]

не помогло — тоже исключеие
Re[4]: [Serializable]
От: k732  
Дата: 20.01.07 21:58
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, k732, Вы писали:


TK>>>А причем тут Serializable? Надо воспользоваться атрибутом StructLayout

K>>а что именно нужно сделать, чтоб маршалился класс ?

TK>[StructLayout(LayoutKind.Sequential)]

нашел в чем проблемма. Это все из-за класса А. т.к. он создан через new. Когда я его закоментировал — то все нормально.
Странно — ведь он тоже [StructLayout(LayoutKind.Sequential)]. Почему так ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.