2017-01-19 1 views
0

Я использую портативный Protobuf-net.dll версии 2.0.0.668Protobuf.net Portable Исключение - Тайм-аут во время проверки метаданных

Мои подразделения тест продолжать бросать эту ошибку:

ProtoBuf.ProtoException : Timeout while inspecting metadata; this may indicate a deadlock. This can often be avoided by preparing necessary serializers during application initialization, rather than allowing multiple threads to perform the initial metadata inspection; please also see the LockContended event 

Я пытался следующее:

Serializer.PrepareSerializer<ParametersSetRequestMessage>(); 

В испытаниях нет нитей. И типы, которые сериализуются, не являются сложными.

[ProtoContract] 
public class ParametersSetRequestMessage: Message, IParameterMessage 
{ 
    public ParametersSetRequestMessage() 
    { 
     Type = MessageType.ParametersSetRequest; 
     BaseType = BaseMessageType.Command; 
    } 
    public MessageType Type { get; protected set; } 

    [ProtoMember(1)] 
    public List<ParameterSlim> SetParameters { get; set; } 
} 

[ProtoContract] 
public class ParameterSlim 
{ 
    [ProtoMember(1)] 
    public ParameterId ParameterId { get; set; } 

    [ProtoMember(2)] 
    public byte[] RawBytes { get; set; } 
} 


[ProtoContract] 
public class Message : IMessage 
{ 
    public BaseMessageType BaseType { get; protected set; } 

    [ProtoMember(1)] 
    public DateTime ReceivedTime { get; set; } 
} 

Любые идеи?

ответ

0

ОК - для моего проекта модульного тестирования я добавил непереносимый пакет nuget, и теперь все, если сейчас прекрасно. Кажется, что проблема связана с переносимой DLL. Хотя я использовал его на ios, Android и моно без проблем. Мои модульные тесты запускаются на машине Windows.