Я использую
Microsoft.CodeAnalysis.CSharp.dll в моем проекте. У меня есть класс, свойство этого класса является объектом, который был описан в
Microsoft.CodeAnalysis.CSharp.dll и подключен к моему проекту.
[ProtoContract]
public class FunctionAnnotation :
{
[ProtoMember(1)] public IMethodSymbol Symbol { get; set; }
}
IMethodSymbol описан в
Microsoft.CodeAnalysis.CSharp.dll. Я использую protobuf-net. При попытке сериализовать объект он бросает исключение:
No serializer defined for type: Microsoft.CodeAnalysis.IMetnodSymbol.
Понятно, что
Microsoft.CodeAnalysis.IMetnodSymbol не помечен как
[ProtoContract].
private void Serialization()
{
string folderName = @"f:/serialization/";
Directory.CreateDirectory(folderName);
int name = this.Symbol.ToString().GetHashCode();
using (FileStream fs = new FileStream("f:/serialization/" + name + ".dat", FileMode.OpenOrCreate))
{
Serializer.Serialize(fs, this);
}
}
Как решить эту проблему? Есть ли варианты не вручную помечать классы?