无法将 MyObject 类型的对象转换为 MyObject 类型

2023-11-25

我有这样的场景,我在 C# 中使用的 Web 服务方法返回一个 Business 对象,当使用以下代码调用 Web 服务方法时,我在 reference.cs 类中收到异常“无法将 ContactInfo 类型的对象转换为 ContactInfo 类型”网络参考

Code:

ContactInfo contactInfo = new ContactInfo();
Contact contact = new Contact();

contactInfo = contact.Load(this.ContactID.Value);

任何帮助将非常感激。


这是因为其中之一ContactInfo对象是一个 Web 服务代理,并且位于不同的命名空间中。

这是 asmx 风格的 Web 服务的一个已知问题。过去我已经实现了自动浅复制来解决这个问题(就是这样,虽然如果我再做一次,我可能会看看自动映射器反而)。

例如,如果您有一个具有以下类的程序集:

MyProject.ContactInfo

然后从 Web 方法返回它的实例:

public class DoSomethingService : System.Web.Services.WebService
{
    public MyProject.ContactInfo GetContactInfo(int id)
    {
        // Code here...
    }
}

然后,当您将 Web 引用添加到客户端项目时,您实际上会得到以下结果:

MyClientProject.DoSomethingService.ContactInfo

这意味着,如果在您的客户端应用程序中,您调用 Web 服务来获取ContactInfo,你有这样的情况:

namespace MyClientProject
{
    public class MyClientClass
    {
        public void AskWebServiceForContactInfo()
        {
            using (var service = new DoSomethingService())
            {
                MyClientProject.DoSomethingService.ContactInfo contactInfo = service.GetContactInfo(1);

                // ERROR: You can't cast this:
                MyProject.ContactInfo localContactInfo = contactInfo;
            }
        }
    }
}

我在最后一行使用了我的ShallowCopy class:

namespace MyClientProject
{
    public class MyClientClass
    {
        public void AskWebServiceForContactInfo()
        {
            using (var service = new DoSomethingService())
            {
                MyClientProject.DoSomethingService.ContactInfo contactInfo = service.GetContactInfo(1);

                // We actually get a new object here, of the correct namespace
                MyProject.ContactInfo localContactInfo = ShallowCopy.Copy<MyClientProject.DoSomethingService.ContactInfo, MyProject.ContactInfo>(contactInfo);
            }
        }
    }
}

NOTE
这只有效,因为代理类和“真实”类具有完全相同的属性(一个是由 Visual Studio 从另一个生成的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将 MyObject 类型的对象转换为 MyObject 类型 的相关文章

随机推荐

  • 获取强制推送的提交的历史记录

    昨天 我们团队的一名成员做了一个git push force在我们的 Bitbucket 存储库内 我知道是谁 但我想知道是否可以收集哪些提交被强制推送到存储库中 我从 git log history 中寻找的信息是这样的 1951097
  • SkiaSharp 和 GPU 加速

    我正在评估 SkiaSharp 库 来自 nuget 版本 1 59 3 一切都渲染得很好 但 Skia 似乎并没有使用 GPU 来加速渲染 Windows 10 任务管理器未检测到我的测试应用程序对 GPU 的任何使用 我正在使用下一个命
  • 使用 CSS 设置 HTML 标题属性的样式

    我正在尝试设置标题属性的样式
  • KStream 批处理窗口

    我想使用 KStream 接口批量处理消息 我有一个带有键 值的流 我尝试将它们收集在翻滚窗口中 然后我想立即处理整个窗口 builder stream longSerde updateEventSerde CONSUME TOPIC ag
  • jQuery - 使用canvas 在div 之间绘制线条

    我有 n div s 每个都有 h1 标题和 ul 中的项目列表 我想将它们漂浮在画布上并从中绘制线条 div 列出项目 y 至 div 我正在使用 jQuery UI 来制作 div 可拖动 canvas 元素位于页面下方的一部分 一段文
  • 在 Xcode 6 中设置选项卡栏项目选定的图像

    这是我对选项卡栏项目的设置 但是 当单击应用程序内的项目时 不会显示 1051 id badge selected 图像 而是不显示任何内容 我的设置有问题吗 有任何想法吗 为了解决这个问题并在不编写任何代码的情况下设置选定的图像 我们还可
  • Java 应用程序在 Linux 上挂在“java.io.UnixFileSystem.getBooleanAttributes0”处

    我们的客户应用程序似乎挂起并显示以下堆栈跟踪 java lang Thread State RUNNABLE at java io UnixFileSystem getBooleanAttributes0 Native Method at
  • 如何设置轴限制

    我需要帮助设置 matplotlib 上 y 轴的限制 这是我尝试过的代码 但没有成功 import matplotlib pyplot as plt plt figure 1 figsize 8 5 11 plt suptitle plo
  • 将 cookie 加载到 Python 请求会话时出错

    我正在尝试从 selenium 导出的 cookie 将 cookie 加载到 Python 中的请求会话中 但是当我这样做时 它会返回以下错误 list 对象没有属性 extract cookies def load cookies fi
  • 为不同的Linux版本构建内核模块

    我是编写内核模块的新手 因此面临很少的非技术问题 由于为特定内核版本 例如 3 0 0 10 10 是补丁号 创建内核模块需要相同版本的内核头文件 因此看起来直接安装内核头文件并在那里开始开发 但修补内核版本的内核头不可用 因为我有一个来宾
  • 为什么这个嵌套 lambda 不被视为 constexpr?

    我正在尝试使用嵌套 constexpr lambda 创建一个柯里化接口 但编译器不认为它是常量表达式 namespace hana boost hana using namespace hana literals struct C1 te
  • 如何验证 CuDNN 安装?

    我搜索了很多地方 但我得到的只是如何安装它 而不是如何验证它是否已安装 我可以验证我的 NVIDIA 驱动程序是否已安装 并且 CUDA 是否已安装 但我不知道如何验证 CuDNN 是否已安装 非常感谢您的帮助 谢谢 PS 这是用于咖啡实现
  • 中心绝对定位的div [重复]

    这个问题在这里已经有答案了 我有一个 div 里面有一个按钮 我让按钮位置为absolute 及其样式代码 buy btn text align center position absolute bottom 10px 我怎样才能将其对齐到
  • Git 大提交最佳实践

    我正在使用 git 上周我在本地存储库上进行了大量工作 我喜欢进行许多小提交 例如 2 或 3 个文件 而不是大提交 但这一次由于时间压力和更改涉及许多文件 我有很多文件未暂存 我的问题是 这种情况下的最佳实践是什么 有没有什么工具可以让我
  • 如何制作一个在 IE 和 Firefox 中都有效的 file:// 超链接?

    在我的文档网页中 我经常需要提供指向存储在 Intranet 上的位置 文件和应用程序 xbap 的链接 在 IE 中 这对于格式如下的 URL 来说效果很好 a href Go to folder a a href Download fi
  • 如何为 UITextField 中的占位符文本设置可访问性特征?

    我正在检查我们的 iOS 应用程序来解决辅助功能问题 该应用程序的功能之一是 UITextField 用户可以在其中输入搜索查询 我将该字段的特征设置为 搜索字段 并且 VoiceOver 大部分时间都对该字段做得很好 当字段中有文本时 它
  • 按列而不是按行对结果进行排序

    SQL中可以按列排序而不是按行排序吗 我不需要基本的 ORDER BY 语句 我知道它们是如何工作的 即 按列 1 列 2 等排序 基本上尝试对这样的事情进行排序 column 1 column 2 column 3 1 0 3 尝试对此进
  • 如何检测用户是否启用了 Mac OS 高对比度辅助功能设置?

    我有一个 React TypeScript 项目 我试图检测用户是否启用了任何 Mac OS 的高对比度辅助功能设置 反转颜色 使用灰度 区分无颜色 增加对比度或增加的显示对比度设置 我想使用 JavaScript TypeScript 检
  • Windows 汇编堆和堆栈?

    操作系统 Windows 7 32位 所以像c 一样 有一个堆和一个堆栈 但我最近开始进行一些汇编学习 但没有看到任何类似的东西 只有一个堆栈 但它看起来就像纯粹的内存 那么堆和栈的实现是特定于 C 和其他语言的吗 或者您仍然在汇编中分配堆
  • 无法将 MyObject 类型的对象转换为 MyObject 类型

    我有这样的场景 我在 C 中使用的 Web 服务方法返回一个 Business 对象 当使用以下代码调用 Web 服务方法时 我在 reference cs 类中收到异常 无法将 ContactInfo 类型的对象转换为 ContactIn