如何从asmx Web服务查看我的类

时间:2013-12-30 15:29:31

标签: c# web-services asmx

我有一个带有C#的ASMX Web服务。在这个WebService中,我使用了一些带有属性的类。 Class与Service1.asmx在同一名称空间中。

我的网络服务代码:

namespace NewWebService
{
    [WebService(Namespace = "http://www.MySite.net/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {     
        [WebMethod]
        public string GetUsers(string authenticatedToken) //out string error
        {

            //Extract from database the users...

            return Serialize(usersList);
        }
    ...
    }
}

我的班级代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace NewWebService
{
    public class Users
    {
        public int ID { get; set; }
        public string Name { get; set; }
        ...
    }
}

问题是:我必须在课程中查看我可以在添加了webservice的项目中查看它。

1 个答案:

答案 0 :(得分:3)

您将返回string

public string GetUsers(string authenticatedToken)

因此,Web服务的公共定义仅公开有关string的信息。公共界面中没有任何关于您的课程的信息,因此网络服务不会宣传您班级的任何信息。

返回类的强类型实例。像这样:

public IEnumerable<User> GetUsers(string authenticatedToken)

然后生成的Web服务代码将包含要返回的类型的定义,因此使用客户端将能够理解该类型。 (例如,如果使用客户端包含代码生成功能,则生成该类型的本地模拟。从汇编角度来看,它不是相同的类型,而是跨越服务边界真的是一个问题。)