小编Yak*_*ani的帖子

使用具有protobuf-net异常的代理序列化List <T>

我正在使用protobuf-net(版本2.0.0.621)并且在序列化List类型时遇到问题,其中T是我自己的类(它包含什么并不重要)并且为T设置了代理.

代理人设置如下:

ProtoBuf.Meta.RuntimeTypeModel.Default.Add(typeof(MyClass), false).SetSurrogate(typeof(MyClassSurrogate));
Run Code Online (Sandbox Code Playgroud)

我的课:

public class MyClass
{
    public int Number { get; set; }
}

[ProtoContract]
MyClassSurrogate
{
    [ProtoMember(1)]
    public int Number { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我创建一个MyClass类型的通用列表,用项填充它并像这样序列化它:

ProtoBuf.Serializer.Serialize(stream, list);
Run Code Online (Sandbox Code Playgroud)

在反序列化时出现问题,我在隐式运算符转换中的代理中不断获得"null":

static public implicit operator MyClassSurrogate(MyClass myClass)
Run Code Online (Sandbox Code Playgroud)

然后'myClass'为空.

如果我删除代理并用proto属性装饰MyClass,一切正常.

你能告诉我我做错了什么吗?

谢谢.

c# null protocol-buffers protobuf-net deserialization

5
推荐指数
1
解决办法
3295
查看次数

如何确保重构不会改变代码流?

我正在重构一些Java代码,我的目的不是根本不更改行为/流程,而只是对其进行清理,将其划分为方法等。

最后,我想做的是确保我的更改确实只是美学上的,并且行为/流程没有更改。

我知道可以通过编写全面的单元测试来“实现”,但是我想知道是否存在一些Java代码分析实用程序可以用来比较更改前后的代码流,因为从理论上讲,这听起来像这是可能的。

任何帮助表示赞赏!

java refactoring code-analysis flow

-2
推荐指数
1
解决办法
39
查看次数