c# - 类型转换为具有相同属性的另一个

标签 c# types casting xsd

在我的应用程序的一个部分中,我使用从 xsd 方案生成的类型 - 我有 2008 和 2009 两个版本的架构 - 我使用的类型是 DatumType - 在每个方案中,该类型都包含相同的属性 - 它们是精确的,除了命名空间。 有什么方法可以将 DatumType (2008) 转换为 DatumType (2009),以便我可以在我的应用程序中仅使用一种类型而不是两种类型?

我正在使用 c# 和 win 表单,谢谢!

最佳答案

不,没有办法将一种类型转换为另一种类型,因为据编译器所知,这是两种不相关的类型。

如果目标类型的字段是可赋值的,您可以编写一个简短的方法,使用反射来复制字段。

您还可以构建将源类型的对象保存到 XML 的代码,并将该 XML 读取到目标类型的对象中。这稍微脆弱一些,因为它依赖于相同字段的存在以及它们以相同方式转换为 XML 的事实。

关于c# - 类型转换为具有相同属性的另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10218543/

相关文章:

c# - 如何从 XML 中获取此值?

c# - 为了单元测试更改方法可见性是否可以?

arrays - 除非显式引用一个字典枚举键,否则编译器会报错

从 AnyHashable 快速转换为枚举

java - 将值转换到 Map 中

c# - Roslyn (Lambda) 表达式主体属性语法

c# - Windows 窗体 - 如何保存和加载游戏?

c# - 指定函数参数的类型*和*接口(interface)

javascript - 如何在 JavaScript 中引用 Arguments 类?

C#:将 '0' 转换为 int