我在使用 protobuf-net 反序列化后面临不一致的问题。
我想序列化/反序列化的类看起来像:
[ProtoContract]
public class TSS
{
[ProtoMember(1, AsReference = true)]
public EventManager eventManager { get; private set; }
[ProtoMember(2)]
public DateTime referenceDateTime { get; private set; }
[ProtoMember(3)]
public Mode mode;
}
Run Code Online (Sandbox Code Playgroud)
在 EventManager 类中,它看起来像:
[ProtoContract]
public class EventManager
{
[ProtoMember(1)]
public InputQueue inputQueue = new InputQueue();
[ProtoMember(2)]
public InputQueue InputQueue
{
get { return this.inputQueue; }
set { this.inputQueue = value; }
}
[ProtoMember(7, AsReference = true)]
public TSS tss;
}
Run Code Online (Sandbox Code Playgroud)
EventManager类中的tss是TSS对象的引用,TSS类中的eventManager是EventManager对象的引用。这就是我放在AsReference = true那里的原因(这是正确的方法吗?) …
我有一个班级A和一个班级AStore.我的要求是阻止所有其他方法初始化类的实例A,他们应该从中获取实例AStore.另外,我还需要A从实例访问成员函数.
工厂模式不适合这个问题,因为构造函数A仍然是公共的.理想情况下,在调用类的构造函数时,它应该抛出编译错误,A同时可以访问其成员函数.
我可以获得C#解决方案吗?