小编aar*_*rro的帖子

protobuf-net不使用私有设置程序序列化C#属性

今天,我一直在使用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)

c# protobuf-net

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

Dictionary.ContainsKey StringComparer.Ordinal

我正在使用.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)

我在这里看不到什么?

c# dictionary containskey

0
推荐指数
1
解决办法
2257
查看次数

标签 统计

c# ×2

containskey ×1

dictionary ×1

protobuf-net ×1