Как создать экземпляр класса обходным путем?
От: Егорыч  
Дата: 24.01.07 12:26
Оценка:
Привет!

Есть ли в NET 2.0 какой-нибудь способ создать экземпляр класса, который:

Пример класса — SyncArrayList, который объявлен внутри ArrayList и возвращается следующим вызовом:

ArrayList.Synchronized(new ArrayList())

Вопрос такой возникает в контексте написания сериализатора/десериализатора классов в/из XML (подобного Java'вскому XStream).

Пока что только смог написать билдер, который создает динамический тип, наследующий нужный класс, эмиттит конструктор и создает экземпляр прокси. Но такой способ имеет два недостатка:

В Java'вском XStream'е для этого применен способ, который использьзуется самой Java-машиной в механизме сериализации. Может механизм NET тожно можно для этого применить? У меня пока есть только одна шальная идея — для нужного класса создать его бинарное сериализованное представление (не содержащее значений полей) в массиве байт и десериализовать его из этого массива. Что скажете, гуру, может такой способ прокатить? Или с классом, у которого не стоит атрибут [Serializable], такое не пройдет?

Может какие другие идеи подскажете?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.