今天,我一直在使用protobuf-net乱搞,遇到了一个奇怪的情况。下面的代码未按预期反序列化。最后两次反序列化尝试成功,但是它们不正确。反序列化的对象将IsEmpty设置为true实际应设置为的时间false。我已经能够使用私有设置程序获取属性以进行序列化了,但是这一行为并不正确。它与链接的默认构造函数有关吗?
class Program2
{
static void Main(string[] args)
{
var comp = new FooComparer();
// this deserializes fine. woot!
using (var ms = new MemoryStream())
{
Console.WriteLine("Serializing an empty Foo");
var args1 = new Foo();
Serializer.Serialize(ms, args1);
ms.Position = 0;
var result = Serializer.Deserialize(ms);
Console.WriteLine("Serialization successful: {0}", comp.Equals(args1, result));
Console.WriteLine();
}
// this deserializes incorrectly
using (var ms = new MemoryStream())
{
Console.WriteLine("Serializing a Foo with just a string");
var args1 = new Foo("576000BJ1");
Serializer.Serialize(ms, args1); …Run Code Online (Sandbox Code Playgroud) 我正在使用.NET 3.5中的C#中的Dictionary.我创建了一个对象并传入了相等比较器.但是,当我执行以下代码时,我得不到我期望的结果:Dictionary<string, int>StringComparer.Ordinal
Dictionary<string, int> theDictionary = new Dictionary<string, int>(StringComparer.Ordinal);
theDictionary.Add("First", 1);
bool exists = theDictionary.ContainsKey("FIRST"); // equals true, when it should not
Run Code Online (Sandbox Code Playgroud)
我在这里看不到什么?