如何修改以下代码示例以便能够返回对象?

时间:2012-12-13 09:06:40

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

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

我想知道应该如何更改它以便我可以将其作为对象返回。以下所有代码都在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; }
}

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

[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上以便更广泛地理解。