无法投射C#

无法投射C#,第1张

概述我的解决方案中有2个不同的项目. 在一个我有一个名为MyClass1的类,而在另一个我有MyClass2 这些类除了名称之外都是相同的. 在一个项目中,我有一个对象列表.在运行期间,列表中填充了MyClass1对象 我们铸造了一个物体. 最后,我想将列表中的每个对象转换为MyClass2对象. 目前它抛出一个异常,说无法将MyClass1类型的对象强制转换为MyClass2. 我的代码: List 我的解决方案中有2个不同的项目.

在一个我有一个名为MyClass1的类,而在另一个我有MyClass2
这些类除了名称之外都是相同的.

在一个项目中,我有一个对象列表.在运行期间,列表中填充了MyClass1对象
我们铸造了一个物体.

最后,我想将列表中的每个对象转换为MyClass2对象.

目前它抛出一个异常,说无法将MyClass1类型的对象强制转换为MyClass2.

我的代码:

List<Object> _tempObjects = new List<Objects>();foreach(Object myObjectinput in _tempObjects){  MyClass2 temp = (MyClass2) myObjectinput; // here is where it dIEs}

这两个类是相同的,只是名称不同.
我也尝试过:

MyClass2 temp = myObjectinput as MyClass2;
解决方法 投射不起作用.当将(一个静态对象的对象)对象转换为另一个类型时,它必须已经是该类型的实例才能工作.也许你想用 AutoMapper从一个转换到另一个,例如

Mapper.CreateMap<MyClass1,MyClass2>();// later...MyClass2 temp = Mapper.Map<MyClass2>(myObjectinput);

或者手动复制属性,可能在构造函数中:

public MyClass2(MyClass1 other){    this.someProperty = other.someProperty;    // etc}MyClass2 temp = new MyClass2((MyClass1)myObjectinput);

更有可能的是,你应该做的是让项目以.NET本身理解和支持的方式共享MyClass:将它放在一个可以被两个项目引用的项目中.如果一个项目应该引用另一个,那就这样做;否则,创建第三个项目作为库.

总结

以上是内存溢出为你收集整理的无法投射C#全部内容,希望文章能够帮你解决无法投射C#所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1226339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存