Я работаю над проектом, где я должен буду сериализировать некоторые данные в приложении java 6 и десериализовать их приложение c# 2.0. Существует ли стратегия или что-то уже существующее, на которое я могу посмотреть, который позволил бы мне делать это с этими двумя языками? Я предполагаю, что они оба поддерживают сериализацию XML, но мне действительно нужна она, чтобы быть двоичный сериализированный.
] Протокольные буферы были бы хорошим вариантом здесь. На стороне C# я бы порекомендовал дотнет-протобуфы Джона Скита [] [] для этого случая использования, так как у него один и тот же API с обеих сторон (его C#-версия является портом версии Google Java, входящей в дистрибутив ядра). Если вы хотите, чтобы C# был более "типичным .NET", то []protobuf-net[] может помочь.[
]. [] (формат проводов, очевидно, идентичен между версиями; API может отличаться)[
]. [] Маленький, быстрый, эффективный, [] портативный []. [
] [] Для информации, я [] знаю [], что protobuf-net имеет поддержку .NET 2.0; честно говоря, я не пробовал это на версии Джона, но я [] ожидаю [], что это было бы - не так много, что вам нужно 3.0/3.5 в protobuf.[
].Можно попробовать гессенский:
http://hessian.caucho.com/index.xtp
Он бинарный, поддерживает Java, C++ и некоторые другие языки. Я никогда не пользовался им сам, но наткнулся на него, подумал, что это интересно, и сделал закладку...
.] Двоичная сериализация каждого языка по умолчанию несовместима, поэтому вы не сможете ее использовать. [
] [] Существует множество технологий сериализации на разных языках, которые поддерживают Java, C# и другие языки: [
]. [] Из них JSON не является двоичным, но очень эффективен для строкового языка. Буферы Thrift и Protocol Buffers являются двоичными и имеют очень компактное представление.[
].] [] Буферы протокола [] ([] сайт Google []) [
] [][]Java Tutorial[][
] [] [] Порт C# Джона Скита [] [
] [] [] Порт C# Марка Грэвелла [] [
] [] Плюсы: Быстро, и вы можете поставить жучок довольно много людей, которые имеют отношение к этой штуке на SO... ;-)[
] [] Позвольте мне использовать проектный сайт Марка: [] Производительность вполне приемлема []... [
]]Буферы протокола Google []Буферы протокола [] - это то, что вы могли бы изучить. Вам нужно будет проверить состояние удобства использования реализации C#, но во всех остальных отношениях, я думаю, что она удовлетворяет вашим потребностям.[
]] Я не верю, что бинарная сериализация будет работать, так как C# и Java понятия не имеют о нативных типах друг друга. [
]