Не могу получить Protobuf-net, работающий с vb.net

Я недавно попробовал Protobuf-net r668 с моим кодом vb.net. Я могу пометить атрибуты в своем классе данных, но не могу заставить работать функции сериализации и десериализации. Я следовал инструкциям по адресу http://code.google.com/p/protobuf-net/wiki/GettingStarted но, преобразовав код в vb.net, обнаружил, что этот код C#:

using (var file = File.Create("person.bin")) {
    Serializer.Serialize(file, person);
}

Не будет работать при переводе на vb.net, потому что метод Serialize не отображается как метод класса Protobuf.Serializer.

Любые указатели от любого, у кого есть Protobuf-net, работающий в vb.net, были бы полезны.

1 ответ

Решение

Это должно просто работать; например, работает нормально:

Imports System.IO

Module Module1

    Sub Main()
        Dim strFileName As String = "foo.bin"
        Dim f As FileStream = File.Create(strFileName)
        Dim objData As Foo = New Foo With {.Name = "abcdef"}
        ProtoBuf.Serializer.Serialize(f, objData)
    End Sub

    <ProtoBuf.ProtoContract>
    Class Foo
        <ProtoBuf.ProtoMember(1)>
        Property Name As String
    End Class
End Module

Сначала я подумал, что вы ссылались на версию protobuf-net.dll, предназначенную для одной из мобильных платформ, которая предоставляет некоторые функции немного по-другому. В частности, DLL из сборки "только ядро". Назначение каждой отдельной сборки описано в What Files Do I Need.txt файл (который входит в корень пакета)

Другие вопросы по тегам