protobuf
Mar*_*ell 5
是的,有两种不同的方式。
使用您现有的代码,最简单的选择是告诉 protobuf-net 执行 voodoo 以克服没有可用构造函数的事实;幸运的是,这很简单:
[ProtoContract(SkipConstructor = true)]public record GetServerProcessInfoResponse( [property: ProtoMember(1)] TimeSpan TotalProcessorTime, [property: ProtoMember(2)] TimeSpan UserProcessorTime, [property: ProtoMember(3)] TimeSpan PrivilegedProcessorTime, [property: ProtoMember(4)] string CurrentMemoryUsage, [property: ProtoMember(5)] string PeakMemoryUsage, [property: ProtoMember(6)] int ActiveThreads);然而!随着 v3 代码的最新版本,它还将推断出您在纯粹位置记录的情况下要专门做什么,即以下内容也应该起作用,并且或多或少意味着相同的事情(作为一个细节:它将在这种情况下实际使用构造函数,而不是通过伏都教创建一个实例然后踩踏值):
public record GetServerProcessInfoResponse( TimeSpan TotalProcessorTime, TimeSpan UserProcessorTime, TimeSpan PrivilegedProcessorTime, string CurrentMemoryUsage, string PeakMemoryUsage, int ActiveThreads);protobuf