0

我有一个 asp Web 服务,其中包含一个内部有一个函数的类,但是当我在我的 winforms 项目中引用它时,我似乎无法访问该函数。我的网络服务的所有其他方面都在工作,并且一切都会根据我的更改进行更新。这是我的 Web 服务中的代码,它说明了我遇到的问题。在示例中,如果我要从引用此 Web 服务的 winform 项目创建 ItemOrder 的实例,我将无法调用 AddItem(...)。

[WebService(Namespace = "http://myurl.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class MyWebService : System.Web.Services.WebService
{

    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://myurl.com/")]
    public class ItemOrder
    {
        public string OrderNumber = "";
        public DateTime OrderDate = DateTime.Now;
        public decimal TotalCost = 0M;

        internal List<Item> items = new List<Item>();

        [WebMethod]
        public void AddItem(string reference)
        {
            Item item = new Item();
            item.ItemReference = reference;
            items.Add(item);
        }
    }

    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://myurl.com/")]
    public class Item
    {
        public decimal Cost = 0M;
        public decimal Price = 0M;
        public string ItemReference = "";
    }
}

上面的代码是一个简化的例子,不是我的全部情况。我的问题是我无法为 Web 服务类中定义的类调用任何方法。我可以调用根 Web 服务类 (MyWebService) 中定义的方法没有问题。如果有人有任何想法为什么会这样,或者如果你能指出我正确的方向,那将不胜感激。

4

1 回答 1

2

Web 服务无法序列化代码,因此您的类中的方法对客户端代理不可用(并且如果您在私有方法中有代码,它将不会执行)。通过这种方法序列化的对象只是数据传输对象——哑属性。

于 2012-07-24T14:38:03.973 回答