首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型比较未返回预期结果

类型比较未返回预期结果
EN

Stack Overflow用户
提问于 2010-10-07 21:39:46
回答 3查看 217关注 0票数 2

我使用以下代码来比较类型,以便在必要时DataContractSerializer将使用正确的类型重新初始化。

代码语言:javascript
运行
复制
    private void InitializeSerializer(Type type)
    {
        if (this.serializer == null)
        {
            this.serializer = new DataContractSerializer(type);
            this.typeToSerialize = type;
        }
        else
        {
            if (this.typeToSerialize != null)
            {
                if (this.typeToSerialize.GetType() != type.GetType())
                {
                    this.serializer = new DataContractSerializer(type);
                    this.typeToSerialize = type;
                }
            }
        }
    }

由于某些原因,当我比较这两种类型时,结果总是真的,并且我从不输入最后的'if‘语句并重新初始化我的序列化程序。

我可以在比较时设置一个断点,并清楚地看到这两种类型是List<Host> (this.typeToSerialize.GetType())和Post (type.GetType())

Host和Post都有一个共同的祖先,但这不应该影响结果。

EN

Stack Overflow用户

发布于 2010-10-07 21:47:00

看起来您正在比较两个Type对象的类型。我认为您需要比较类型对象本身。

代码语言:javascript
运行
复制
this.typeToSerialize != type

this.typeToSerialize.GetType()和type.GetType()都将返回typeof(类型)(相同的对象)。

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3882196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档