Что произошло с [OptionalField] Атрибут?

вы можете получить значение следующим образом

string str = (string)(range.Cells[row, col] as Excel.Range).Value2 ;

выбрать весь используемый диапазон

Excel.Range range = xlWorkSheet.UsedRange;

источник:

http: //csharp.net- informations.com/excel/csharp-read-excel.htm

пылающий

8
задан abatishchev 25 May 2011 в 11:42
поделиться

1 ответ

BinaryFormatter в лучших случаях очень хрупкий, если вы что-то измените. Не в последнюю очередь, существуют огромные проблемы с автоматически реализуемыми свойствами, обфускациями , переименованием, строгим именованием и т. Д.

Насколько я помню, некоторые правила, касающиеся [OptionalField] , просто изменились до того, как он был выпущен; Я полагаю, что проблема с устойчивостью к версиям на самом деле не сработала так легко, как планировалось.

Мой совет: если вы хотите сериализацию, устойчивую к версиям (то есть вы можете сериализовать ее сегодня и десериализовать в следующей версии вашего приложения) , тогда не используйте BinaryFormatter ; это (IMO) подходит только для передачи данных между той же версией (удаленное взаимодействие, AppDomain s и т. д.).

Для работы между версиями, Я рекомендую сериализацию на основе контрактов; такие вещи, как XmlSerializer и DataContractSerializer (.NET 3.0), или для двоичного кода - protobuf-net или аналогичные инструменты. Все они намного лучше переносят версию (на самом деле, вам даже не нужно десериализовать ее в тот же Type ); плюс их можно использовать между платформами - так что вы можете сериализовать в .NET и десериализовать в java / C ++ / и т. д.

8
ответ дан 5 December 2019 в 20:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: