繁体   English   中英

我怎么通过 <summary> 来自ASP.net webservice?

[英]How do I pass <summary> from ASP.net webservice?

我正在尝试将Web服务类记录到C#应用程序中。

public class Container
    {

        private Dictionary<String, Object> _properties = new Dictionary<string, object>();

        private Boolean _changed;
        public Boolean Changed
        {
            get
            {
                return _changed;
            }
            set
            {
                _changed = value;
            }
        }

        // Human Readable fields

        public Object this[String Name]
        {
            get
            {
                if (_properties.ContainsKey(Name))
                    return _properties[Name];
                return null;
            }
            set
            {
                if (!_properties.ContainsKey(Name))
                    _properties.Add(Name, value);
                else
                {
                    _properties[Name] = value;
                    _changed = true;
                }
            }
        }

        #region Fields

        /// <summary>
        /// Field: RCPAKN
        /// </summary>
        public String ContainerNumber
        {
            get { return (String)this["RCPAKN"]; }
            set { this["RCPAKN"] = value; }
        }
...

您看到:我尝试传递<summary>信息,但这不会被调用Web服务的C#应用​​程序接收。 (不在对象浏览器中,在Intellisense期间不显示...)

是的,我已经发布了web服务并更新了webreference ..;)

这是不可能的,还是我必须在web服务中添加一些参数?

谢谢

编辑:

- 使用VS.Net 2010构建的webservice,使用VS.Net 2008(CF3.5)
(该信息确实显示在VS.Net 2010对象浏览器... IDE功能?)

XML文档没有编译到代码中,因此无法在应用程序中使用它,更不用说通过Web服务了。

一种可能性是开发自定义属性(如DescriptionAttribute),并实现WSDL导入/导出扩展,但这非常困难。

我通常做的就是这个。 当我开发服务时,我使用WCF并使用[ServiceContract]属性创建服务接口。 我把XML文档放在服务方法上。 我的实际WCF服务实现了这个接口。 我把这个接口和数据类放在一个单独的程序集中。 我还将一个WCF客户端放入此程序集中,该程序集公开了此接口。 在我的使用者项目中,我没有添加服务引用,而是向这个公共程序集添加常规程序集引用,并从那里使用WCF客户端,这样,我就可以在Visual Studio中看到XML文档。 像这样有一个共同的服务 - 客户端程序集是一个很好的做法恕我直言,看到“另一面”的文档是一个幸运的副作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM