Сериализация
Atom
4/15/2010


Михаил, скажите, а классы в пространстве имен BusinessEnityt
сериализуемы? в частоности MarketDepth и Quotes?

Tags:


Thanks:


1 2  >
Tauler

Avatar
Date: 4/15/2010
Reply


А вообще хорошо бы чтобы все сущности были бы сериализуемы. дело в
том, что в/из Workflow процесса можно передавать только сериализуемые
объекты.
Это сложно сделать?

Thanks:

Mikhail Sukhov

Avatar
Date: 4/16/2010
Reply


Какую сериализацию использует WWF?

Thanks:

Tauler

Avatar
Date: 4/16/2010
Reply


да обычную видимо

надо чтобы класс (ну и все классы, поля кторых ест ьв этом классе)
был с атрибутом [Serizalized]. Я заметил что у вас установлен атрибут
[DataContract], но это для WCF подходит.

Thanks:

Tauler

Avatar
Date: 4/19/2010
Reply


Провел эксперимент с Workflow 4.0 (тот чт ов дотнете 4). Вскрытие
показало, что этот воркфлоу ( в ктором уже не надо ставить аттрибут
[Serializable], так же отказывается работаь с классами из сборки
Ecng.Trading.BusinessEntities.dll . При компиляции попростуо
утверждает что

Error 3 Could not find type
'Ecng.Trading.BusinessEntities.MarketDepth' in assembly
'Ecng.Trading.BusinessEntities'. C:\Work\test\TradingComplex\SpreaderWF
\Workflow1.xaml 7 8 SpreaderWF

Причем, если в какой либо другой зборке есть класс с полем типа из
Ecng.Trading.BusinessEntities, то абсолютно такая же картина, только
он не находит тот класс, кторый содержит поле типа из сборки
Ecng.Trading.BusinessEntities.

Есть подозрение на атрибут DataContract, т.к. без него все прокатывает
(я ради интереса попробовал передать пеерменну типа
Ecng.Common.MathHelper). Михаил, может убрать этот жуткий атрибут?
наскольк я понял польза от него только в WCF...

--
Subscription settings:http://groups.google.com/group/stocksharp/subscribe?hl=ru


Thanks:

Tauler

Avatar
Date: 4/19/2010
Reply


Нет, дело не в DataContract. Только что сделал класс с этим аттрибутом
- все прокатило. Может WF чтобы использовать внешние сборки нужен
PublicKeyToken? Видимо он ищет сборки в проэктах, если не находит - то
в CAG. как то так...

Thanks:

Tauler

Avatar
Date: 4/19/2010
Reply


Хотя тогда непонятно почему прокатиывает из Ecng.Common

Thanks:

Mikhail Sukhov

Avatar
Date: 4/19/2010
Reply


Переменная типа MathHelper? Но это невозможно. Это статический класс,
а на такой класс невозможно создавать объекты.

Thanks:

Tauler

Avatar
Date: 4/19/2010
Reply


ну там немножко хитро - я не в рантайме указываю переменну, а
показываю какого гласса переменная БУДЕТ создана . там что то типа
конструктора. дело то не в этом. Дело в том, что компилятор не видит
классов в сборке Ecng.Trading.BusinessEntities, хотя в дизайн тайме
видит.

Thanks:

Tauler

Avatar
Date: 4/19/2010
Reply


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

Thanks:

Mikhail Sukhov

Avatar
Date: 4/19/2010
Reply


Указывайте полное имя - Ecng.Trading.BusinessEntities,
Version=1.8.0.0, Culture=neutral, PublicKeyToken=null
Но дело тут в другом - сериализация в WF не такая как в WCF -

http://msmvps.com/blogs/williamryan/archive/2008/11/01/wf-persistence-where-datacontract-serializable.aspx

В следующие версии я добавлю атрибут для сериализации. Как workaround
- сейчас можно создать наследника (или класс-композитор), который
поменить Serializable.

Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy