C#.NET WebService 返回对象

2023-11-29

我正在使用 ASP.NET C# 创建 Web 服务。我从网络服务发送各种数据类型,因此我使用以下结构。

public enum WS_ServiceResponseResult
{
    Success,
    Failure,
}
public class WS_ServiceResponse
{
    public WS_ServiceResponseResult result { get; set; }
    public object data { get; set; }
}

public class WS_User
{
    public long id{ get; set; }
    public string name{ get; set; }
}

Web服务示例方法

    [WebMethod(EnableSession = true)]
    public WS_ServiceResponse LogIn(string username, string pasword)
    {
        WS_ServiceResponse osr = new WS_ServiceResponse();
        long userID = UserController.checkLogin(username, pasword);

        if (userID != 0)
        {
            osr.result = WS_ServiceResponseResult.Success;
            osr.data = new WS_User() { id = userID, name = username };
        }
        else
        {
            osr.result = WS_ServiceResponseResult.Failure;
            osr.data = "Invalid username/password!";
        }
        return osr;
    }

我使用两种客户端类型:javascript 和 C#.NET Windows 窗体。当我从 javascript 调用时,我没有遇到任何问题,并且 osr.data 已填充 WS_User。所以我可以轻松使用 osr.data.id 。但是当我从 C#.NET 使用时(代理是使用“添加 Web 引用”生成的),我可以成功调用,但当结果到达时,我收到 Soap 异常

{System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.InvalidOperationException:生成 XML 时出错 文档。 ……

我缺少什么?我猜对象没有明确定义并导致了问题。有哪些解决方法?

Thanks

Maksud

添加:

如果添加以下虚拟方法,则效果很好。希望它能帮助您找到解决方案。

    [WebMethod]
    public WS_User Dummy()
    {
        return new WS_User();
    }

我有一个类似的问题返回“对象”(可能有多个类) 这是示例代码:

[Serializable()]
[XmlRoot(ElementName="Object")]
public sealed class XMLObject
{

    private Object _Object;

    [XmlElement(Type=typeof(App.Projekte.Projekt), ElementName="Projekt")]
    [XmlElement(Type=typeof(App.Projekte.Task), ElementName="Task")]
    [XmlElement(Type=typeof(App.Projekte.Mitarbeiter), ElementName="Mitarbeiter")]
    public Object Object
    {
        get
        {
            return _Object;
        }
        set
        {
            _Object = value;
        }
    }
}

我认为你应该这样改变你的代码:

[XmlRoot(ElementName="ServiceResponse")]
public class WS_ServiceResponse
{
    public WS_ServiceResponseResult result { get; set; }

    [XmlElement(Type=typeof(WS_User), ElementName="WS_User")]
    [XmlElement(Type=typeof(string), ElementName="Text")]
    public object data { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#.NET WebService 返回对象 的相关文章

随机推荐

  • 在 RDLC 报告中添加数据集时 Visual Studio 2013 崩溃

    当我尝试将数据集添加到 asp net 项目中的任何 RDLC 报告时 Visual Studio 停止工作并重新启动 我尝试使用 VS 2012 和 2015 添加数据集 两次尝试都产生了与您相同的错误 这种情况只发生在我的 VS 项目之
  • Windows 8.1 64 位中的 IBM MobileFirst Platform 安装

    我正在使用我的办公室笔记本电脑 Lenovo vV310 8GB RAM 64 位操作系统 Windows 8 1 过去几天我一直在尝试修复 IBM Mobile First Platform 的安装问题 我从链接下载了 IBM Mobil
  • HTML5 直播

    对于学校 我需要建立一个 HTML5 直播网站 他们有一个一直在使用的 Flash 流播放器 但现在希望它改用 HTML5 我怎样才能做到这一点 我尝试使用视频标签 但无法正常工作 下面是我的代码 有人能指出我正确的方向吗
  • 将两个同名的 .swift 文件添加到项目中

    我正在尝试将 swagger 客户端集成到我的项目中 我能够从 swagger 生成类 Swagger for swift 3 使用 Alamofire 进行 newtork 操作 问题是生成的类名称之一是 Response Alamofi
  • 无法打开该文件,因为您无权查看该文件

    imageData NSData dataWithContentsOfURL self pdfFileUrl options NSDataReadingMappedAlways error error NSLog error localiz
  • sublime 3 制表符和空格不匹配

    我已经浏览网页3次了 但仍然没有解决方案 我有一个简单的 js 文件 我希望我的制表符是 4 个空格而不是 2 个 我将首选项设置更改为选项卡大小为 4 更改了语法特定设置 一切 但仍然是同样的问题 有任何想法吗 Click On状态栏上的
  • 如何将图片保存到localStorage并在下一页显示?

    所以 基本上 我需要上传单个图像 将其保存到 localStorage 然后将其显示在下一页上 目前 我上传了 HTML 文件
  • Jquery ui 选项卡的不同动画

    我正在使用 jquery ui 选项卡小部件 我没有使用 jquery 主题 因为我更喜欢做我自己的 css 和东西 我已经让它工作了 但我想要的是当单击不同的选项卡时 选项卡内容具有不同的动画效果 我想要的是新的选项卡内容从左侧滑入 目前
  • 软删除实体的导航属性

    我有 2 个实体 我是我的数据库 它们看起来像 Vehicles Id VehicleNumber IsDeleted WorkerId Workers Id Name Address 在我的 edmx 中 VehicleId Id Veh
  • 将 Azure 文件服务 CloudFileShare 映射为云服务每个实例上的虚拟目录

    我有一个天蓝色的云服务 我正在尝试升级该服务以实现高可用性 并且我已订阅了已在预览门户中启用的 Microsoft Azure 文件服务预览版 我已经创建了一个新的存储帐户 并且可以看到该存储帐户现在有一个文件端点位于 https
  • 序列化 Collat​​or 实例

    我正在尝试序列化InstitutionResultView类的一些对象 它基本上是包装器番石榴的 TreeMultimap import java io Serializable import java text Collator impo
  • R 数据表中的最小值不等于特定值

    如何从 R 数据表中找到除特定值之外的最小值 例如 数据表中可能存在零 目标是找到最小非零值 我尝试使用sapply with min 但不确定如何指定我们拥有的额外标准 以使最小值不等于某个值 更一般地说 我们如何从数据表中找到不等于可能
  • 如何将 DesignInstance 与 Caliburn.Micro 结合使用

    我正在使用 Caliburn Micro 我有这个 WPF 视图 在设计时在名字等基本属性上成功使用示例数据 但找不到复杂类型的属性和集合的视图
  • 发布版本中未触发命令

    我的主页上有一个按钮可以导航到下一个视图 这在我的 Windows PC Visual Studio 2017 上的模拟 Android 设备 Android 8 1 加速 x86 上的调试构建中非常有效 从我的角度来看 该按钮绑定到我的视
  • 如何在 CakePHP 中使用 cookie 进行身份验证?

    我正在尝试使用我的域中其他页面设置的 cookie 来验证用户身份 假设我使用 cakephp 编写了 needpassword example com cookie 是由 auth example com 生成的 使用 Perl CGI
  • 使用循环运行 Gulp 任务

    我的 Gulp 任务有问题 我使用一个任务来创建多个带有 gulp mustache 的 html 文件 这样我最后就有两个文件 index de html 和 index en html 我有一个 json 文件 其中包含字符串 一切都很
  • 如何在 gnuplot 创建的 png 文件中添加希腊字符

    我使用的是 FreeBSD 系统的商业服务器 没有 root 帐户 我用我的帐户安装 gnuplot 但是 我无法设置字体 因此 我将字体文件复制到我的主目录中 例如 usr fonts 然后 我在 gnuplot 文件中使用以下脚本 se
  • 刷新J表

    我有一个从 Vector 创建的 JTable 如何刷新 JTable 以显示添加到 Vector 的新数据 当 TableModel 发生更改时 您的 JTable 应该自动更新 我在这里迈出了一步 但我猜测您没有使用自己的 TableM
  • UML 共享聚合是否意味着不存在循环?

    In short 共享聚合似乎只表达了一种简单的关联 它显然是一个 建模安慰剂 没有客观理由使用它 除非在建模者就特定附加语义达成一致的特定上下文中 然而 一些消息来源声称共享聚合将意味着实例聚合图中不存在循环 这将使聚合成为图建模领域的强
  • C#.NET WebService 返回对象

    我正在使用 ASP NET C 创建 Web 服务 我从网络服务发送各种数据类型 因此我使用以下结构 public enum WS ServiceResponseResult Success Failure public class WS