【问题标题】:How to allow client pass my object through webservice?如何允许客户端通过 web 服务传递我的对象?
【发布时间】:2010-11-12 10:13:07
【问题描述】:

抱歉,这是个愚蠢的问题,因为我对 .NET 远程处理和分布式对象有点困惑。

我想编写一个 web 服务,并且在它的一种方法中,我希望用户将我的对象的实例作为参数传递。它将大大减少参数数量,并帮助用户更有效地调用该方法。我创建了一些类,但是在将它们分发给客户端时,只保留了类名,所有属性和方法都消失了,就像这样

public class CameraPackages
{
    private readonly List<CameraPackage> _packages;

    public CameraPackages()
    {
        _packages = new List<CameraPackage>();
    }

    public void AddNewCamera(CameraPackage package)
    {
        _packages.Add(package);
    }

    public void RemoveCamera(CameraPackage package)
    {
        if(_packages.Contains(package))
            _packages.Remove(package);
        else
            throw new ArgumentException();
    }
}

进入这个:(在 Reference.cs 中)

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3082")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
public partial class CameraPackages {
}

如何允许用户使用我的对象? 非常感谢。

【问题讨论】:

    标签: asp.net web-services object remoting


    【解决方案1】:

    Web 服务只会序列化公共属性,因此您不能(以这种方式)使用 Web 服务。

    您需要在客户端管理对象列表,然后在传输对象(仅具有属性的类)中发送数据。

    有一个look at this

    【讨论】:

    • 对不起,我认为这是一个关于 Web 服务的问题 - 不是远程处理,这是不同的。您是否考虑过使用 WCF? - 你最好学习它,而不是这些旧技术。
    • 感谢您的建议。我正计划学习 WCF,但不是现在,因为我下周一有截止日期
    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多