用于调试/检查XML序列化的工具

Tim*_*Tim 12 c# xml debugging serialization

是否有任何工具可以帮助调试/检查xml序列化过程?

例如,假设一个项目被标记为内部而不是公共.没有编译时错误消息,也没有运行时错误消息.如果设置断点并进入序列化过程,则只是跳过该项.换句话说,通常很难找到这些类型的问题.调试工具将允许您逐步完成该过程并提供一些反馈,例如遇到此属性,通过属性迭代并且没有找到相应的公共过程,跳过.另一种选择是检查所有具有xml序列化属性的类的检查工具,以确保它们是可访问的并具有设置方法等.

Tim*_*Tim 14

对于那些查看这个问题的人,我发现为XmlSerializer的UnknownNode和UnknownAttribute事件添加事件处理程序非常有帮助.即使您只是让它抛出一个新的NotImplementedException,您也可以设置断点并查看何时遇到未知的节点和属性.

例如:

        public void Open(string filename)
        {

            // Create serializer
            XmlSerializer serializer = new XmlSerializer(typeof(ObjectType));

            // Set event handlers for unknown nodes/attributes
            serializer.UnknownNode += new XmlNodeEventHandler(serializer_UnknownNode);
            serializer.UnknownAttribute += new  XmlAttributeEventHandler(serializer_UnknownAttribute);

...

        }

        private static void serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e)
        {
            throw new System.NotImplementedException();
        }

        private static void serializer_UnknownNode(object sender, XmlNodeEventArgs e)
        {
            throw new System.NotImplementedException();
        }
Run Code Online (Sandbox Code Playgroud)