【问题标题】:How should the following code sample be amended inorder to be able to return the object?应该如何修改以下代码示例以便能够返回对象?
【发布时间】:2012-12-13 09:06:39
【问题描述】:

以下代码示例来自我的 aspx Web 服务。

我想知道应该如何更改它,以便我可以将它作为对象返回。以下所有代码都在网络服务上,我正在尝试从 Android 调用该对象。

所以我只想知道我必须进行哪些更改才能传递对象。

任何帮助将不胜感激。

[WebMethod]
public object SomeMethod(Vehicle obj)
{
    return obj;
}

[WebMethod]
public void simpleCase()
{
    Vehicle obj = new Vehicle();
    obj.VehicleID = "KL-9876";
    obj.VehicleType = "Nissan";
    obj.VehicleOwner = "Sanjiva";
}

public class Vehicle
{
    public string VehicleID { get; set; }
    public string VehicleType { get; set; }
    public string VehicleOwner { get; set; }
}

【问题讨论】:

    标签: c# android asp.net web-services


    【解决方案1】:

    如果我理解正确,您想从您的 Android 应用程序创建一个 Web 请求并在您的请求后接收该特定数据,这是 json 和 rest wcf Web 服务的经典案例。

    这里有一个如何启动服务器端的链接: http://msdn.microsoft.com/en-us/library/dd203052.aspx

    这是一个链接,向您展示如何在客户端使用它: http://www.vogella.com/articles/AndroidJSON/article.html

    我希望这或多或少是您想要的。

    【讨论】:

    • 嘿,实际上,情况就是这样。但实际上在此代码中寻找我需要的修改。安卓端还不错。就是想知道m8这部分代码怎么修改。
    【解决方案2】:
    [DataContract]
    public class Salesman
    {
    
        [DataMember(Name = "a")]
        public virtual string Id { get; set; }
    
        [DataMember(Name = "b")]
        public virtual int RoleId { get; set; }
    
        [DataMember(Name = "c")]
        public virtual string Name { get; set; }
    
        [DataMember(Name = "d")]
        public virtual string Address { get; set; }
    
        [DataMember(Name = "e")]
        public virtual string Phone { get; set; } 
    } // "a","b","c","d"... are the values with which you'll identify the object properties - client side - when json parsing.
    
    
    
    
     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
        public class SalesmanService 
        {
    
            [OperationContract]
            [WebGet(UriTemplate = "/get/{id}", 
                RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
            public Salesman Get(string id)
            {
              //return your salesman
            }
        }
    

    不要忘记 global.asax 中的这一点:

    RouteTable.Routes.Add(new ServiceRoute("salesman", new WebServiceHostFactory(), typeof(SalesmanService)));

    基本上你应该可以进行这样的调用: 例如“..localhost/salesman/50”

    这只是一个小示例,您必须亲身体验 wcf 和 json 以获得更广泛的理解。

    【讨论】:

    • 嘿,我在代码中做错了什么。我的意思是我正在尝试传递对象,以便它发生我需要在我的代码中进行哪些更改。除了杰森和其他事情。只需根据我的代码,我需要进行哪些更改。
    • 我不知道您正在使用哪种网络服务或您的整个设置是什么,因此我无法 100% 编辑您的代码以开箱即用 - 您可以看到相似之处在我的“推销员”课程和您的“车辆”课程之间。
    • 好的,基本上我想将车辆类的实例传递给 SomeMethod().. 因为我希望将 ID 类型和所有者传递给 SomeMethod.. 我这样做对吗?我不这么认为。这就是我想知道我需要做哪些小的调整来制作 m8..
    猜你喜欢
    • 2017-05-03
    • 2022-01-12
    • 2012-02-13
    • 1970-01-01
    • 2021-04-14
    • 2022-01-07
    • 2015-04-22
    • 1970-01-01
    • 2019-09-29
    相关资源
    最近更新 更多