如何解决“都使用 XML 类型名称 X,使用 XML 属性为类型指定唯一的 XML 名称和/或命名空间”?

2023-12-26

我有以下枚举定义...

namespace ItemTable
{
  public enum DisplayMode
  {
    Tiles,
    Default
  }
}

namespace EffectiveItemPermissionTable
{
  public enum DisplayMode
  {
    Tree,
    FullPaths
  }
}

...然后我有以下课程...

public class Table<TDisplayMode>
  where TDisplayMode: struct
{
  // public
    public TDisplayMode DisplayMode
    { 
      get { return mDisplayMode; }
      set { mDisplayMode = value; }
    }

  // private
    private TDisplayMode mDisplayMode;
}

public class ItemTable : Table<ItemTable.DisplayMode>
{}

public class EffectiveItemPermissionTable : Table<EffectiveItemPermissionTable.DisplayMode>
{}

public class UISettings
{
  public UISettings()
  {
    ItemTable = new ItemTable();
    EffectiveItemPermissionTable = new EffectiveItemPermissionTable();
  }

  public ItemTable ItemTable { get; set; }
  public EffectiveItemPermissionTable EffectiveItemPermissionTable { get; set; }
}

...当我尝试使用...序列化 UISettings 的实例时

System.Xml.Serialization.XmlSerializer lSerializer =
  new System.Xml.Serialization.XmlSerializer(typeof(UISettings));

...我收到以下错误:

Types 'UISettings.Table`1[EffectiveItemPermissionTable.DisplayMode]' and
'UISettings.Table`1[ItemTable.DisplayMode]' both use the XML type name,
'TableOfDisplayMode', from namespace ''.

Use XML attributes to specify a unique XML name and/or namespace for the type.

我尝试使用 XmlType 属性和网上发布的各种解决方案,但没有任何效果。 XML 类型名称始终是TableOfDisplayMode正如错误中提到的。

目前唯一的解决方案是重命名其中一个枚举,例如到DisplayMode_但我觉得那很丑。


您需要提供命名空间 https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlelementattribute.namespace(v=vs.110).aspx通过使用XmlElement你的属性上的属性UISettings class:

public class UISettings
{
    public UISettings()
    {
        ItemTable = new ItemTable();
        EffectiveItemPermissionTable = new EffectiveItemPermissionTable();
    }

    [XmlElement(Namespace = "Item")]
    public ItemTable ItemTable { get; set; }

    [XmlElement(Namespace = "Permissions")]
    public EffectiveItemPermissionTable EffectiveItemPermissionTable { get; set; }
}

当在这里应用时,这将是您的序列化输出:

<?xml version="1.0" encoding="utf-16"?>
<UISettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
   <ItemTable xmlns="Item">    
      <DisplayMode>Tiles</DisplayMode>  
   </ItemTable>  
   <EffectiveItemPermissionTable xmlns="Permissions">    
       <DisplayMode>FullPaths</DisplayMode>  
   </EffectiveItemPermissionTable>
</UISettings>

或者,也许更干净,您可以提供类型的命名空间:

[XmlType(Namespace="Item")]
public class ItemTable : Table<ItemTableNS.DisplayMode>
{ }

[XmlType(Namespace = "Permission")]
public class EffectiveItemPermissionTable : Table<EffectiveItemPermissionTableNS.DisplayMode>
{ }

这将序列化为:

<?xml version="1.0" encoding="utf-16"?>
<UISettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ItemTable>
    <DisplayMode xmlns="Item">Tiles</DisplayMode>
  </ItemTable>
  <EffectiveItemPermissionTable>
    <DisplayMode xmlns="Permission">FullPaths</DisplayMode>
  </EffectiveItemPermissionTable>
</UISettings>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决“都使用 XML 类型名称 X,使用 XML 属性为类型指定唯一的 XML 名称和/或命名空间”? 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 更改用于 TF 命令行的登录帐户

    当使用TFS 2012的命令行版本时 我们调用 TF exe get Path To Team Project Some Folder recursive 通过命令行提示符的调用 我的命令成功了 我没有为此通话输入任何用户名 密码 我想更改
  • 我正在运行哪个版本的 PostgreSQL?

    我在企业环境中 运行Debian Linux 并且没有自己安装它 我使用 Navicat 或 phpPgAdmin 访问数据库 如果有帮助的话 我也没有对运行数据库的服务器的外壳访问权限 从 PostgreSQL 运行此查询 SELECT
  • RxSwift:BehaviorRelay 代替变量使用

    我是 RxSwift 的新手 正在阅读有关主题的内容 我尝试过Variable主题 这又在控制台中发出警告 DEPRECATED Variable is planned for future deprecation Please consi
  • 有没有更简洁的方法来注册 Qt 自定义事件?

    我需要为 Qt 应用程序创建几个自定义事件类 现在 看起来我需要为每个事件类实现以下事件类型注册代码 class MyEvent public QEvent public MyEvent QEvent registeredType stat
  • AUTH_LOGIN 获取完成后如何调用 AUTH_CHECK?

    我正在调用 HTTP API 以使用返回承诺的 axios 登录 AUTH LOGIN 在 API 调用完成之前 AUTH CHECK 被调用并失败 是否可以仅在 http 调用完成后触发 AUTH CHECK 请在下面找到我的 authp
  • Android:如何使用相同的相机意图拍摄多张照片

    我制作了一个 Android 应用程序 可以一张一张地拍摄照片 存储它们 向用户提供预览等等 所有这些任务都是通过类型意图来完成的ACTION IMAGE CAPTURE 所以 每次用户想要拍照时 他应该点击启动意图的 拍照按钮 等待几秒钟
  • 如何将特定状态按组与R中的ggplot2中的一个标签合并在一起?

    我想绘制美国的电网地图 所以我需要将特定的州合并在一起 我想为这些状态绘制边界 但它不起作用 每组也只有一个标签 这是我的数据 https iastate box com s 12xru62lvmbbkrohsn7b4wwexq11umn7
  • CSS :第一个子选择器 IE7

    我遇到了 IE7 的小问题 我有以下 CSS 代码 但它在 IE7 中不起作用 但是 如果不组合 row class span 和 first child 都可以工作 有没有办法做类似的事情或者让它以某种方式工作 row class spa
  • 我可以在 INSERT 语句中使用别名吗?

    我们可以在 insert into 语法中使用别名吗 以下均无效 INSERT INTO tableblabla AS bla INSERT INTO bla tableblabla INSERT INTO tableblabla bla
  • 使用 Java API 创建简单的 1 行 Spark DataFrame

    在 Scala 中 我可以从内存中的字符串创建单行 DataFrame 如下所示 val stringAsList List buzz val df sqlContext sparkContext parallelize jsonValue
  • Dnx 4.5.1/Dnx Core 5.0 不明确的参考

    在我和其他人的许多项目中 如果我使用属于不同 asp net5 项目的对象 则会弹出不明确的引用错误 有趣的是 它仍然可以编译和工作 但没有智能感知 并且我的代码被红线覆盖 一个例子是我有一个指向我的 MVC 项目的测试项目 当我尝试创建
  • 自定义元素适用于 Safari,但不适用于 Firefox 和 Chrome

    我确信我遗漏了规范中的一些基本内容 但在运行于 Safari 的 Mac 上构建了大量自定义元素后 我发现它们不适用于 Firefox 和 Chrome 我缺少什么
  • GlobalScope、CoroutineScope、lifecycleScope

    我习惯于与AsyncTask由于它的简单性 并且很好地理解它 但Coroutines让我感到困惑 您能简单地向我解释一下以下各项的区别和用途吗 GlobalScope launch Dispatchers IO GlobalScope la
  • VBA多次插入图像,无需复制、粘贴

    这里有一个有点奇怪的问题 在我的一张 Excel 工作表上 我生成了一个 pdf 文档 该代码通过根据需要添加表段并根据需要手动设置分页符来运行 以便表不会分散在单个页面上 大多数表有 5 10 行 在每页的底部 还留有足够的行来插入图像
  • 访问 C 中的命令行参数

    如果这是一个菜鸟问题 请原谅我 但我是 C 的初学者 只学习了一段时间 我尝试编写一个对两个数字求和的程序 作为应用程序的参数提供 代码是这样的 include
  • C 结构点运算符到底做什么(低级视角)?

    我有一个关于 C 中结构的问题 因此 当您创建结构时 您实际上是在定义内存块的框架 因此 当您创建结构体的实例时 您正在创建一个内存块 以便它能够保存一定数量的元素 但是 我对点运算符的作用有些困惑 如果我有一个struct Car并有一个
  • 我的代码循环次数超出了我的预期,我怀疑我的 getchar 语句有问题

    首先 我要提前感谢在座的各位 我非常期待在计算机科学领域取得进步 并随着我变得更加熟练而帮助他人 现在这是我的代码 include
  • Rstudio运行和源码的区别

    我正在使用 Rstudio 不确定选项 运行 和 源 有何不同 我尝试用谷歌搜索这些术语 但 来源 是一个非常常见的词 无法获得良好的搜索结果 Run and source具有细微不同的含义 据 RStudio 报道文档 https sup
  • ExtJS 组合框过滤器

    我有两个组合框 第一个用于选择region 第二个用于选择province 应显示在省份组合框中的值将基于区域组合框中选择的值 区域组合框代码 xtype combobox label Region ID margin 10 20 flex
  • 如何解决“都使用 XML 类型名称 X,使用 XML 属性为类型指定唯一的 XML 名称和/或命名空间”?

    我有以下枚举定义 namespace ItemTable public enum DisplayMode Tiles Default namespace EffectiveItemPermissionTable public enum Di