Сериализация
Atom
15.04.2010


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

Теги:


Спасибо:


1 2  >
Tauler

Фотография
Дата: 15.04.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 16.04.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 16.04.2010
Ответить


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

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

Спасибо:

Tauler

Фотография
Дата: 19.04.2010
Ответить


Провел эксперимент с 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


Спасибо:

Tauler

Фотография
Дата: 19.04.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 19.04.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 19.04.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 19.04.2010
Ответить


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

Спасибо:

Tauler

Фотография
Дата: 19.04.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 19.04.2010
Ответить


Указывайте полное имя - 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.

Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy