抑制ASP.. NET pagememethods文档注释

本文关键字:文档 注释 pagememethods NET ASP 抑制 | 更新日期: 2023-09-27 18:03:19

我有一个ASP。. NET WebForm应用程序,它在c#中有一些WebMethod's,可以通过jQuery的ajax函数调用。一切正常,只是我注意到,当我在页面上查看源代码时,我看到了这样的东西:

<script type="text/javascript">
    //<![CDATA[
    var PageMethods = function() {
        PageMethods.initializeBase(this);
        this._timeout = 0;
        this._userContext = null;
        this._succeeded = null;
        this._failed = null;
    }
    PageMethods.prototype = {
        _get_path:function() {
            var p = this.get_path();
            if (p) return p;
            else return PageMethods._staticInstance.get_path();},
            CreateNewFranchise:function(name,firstName,lastName,address1,address2,streetSuffixId,city,stateId,county,zip,mainPhoneAreaCode,mainPhoneTypeId,mainPhonePrefix,mainPhoneSuffix,storeCode,storeKey,merchantId,corporateShop,franchiseNumber,succeededCallback, failedCallback, userContext) {
            /// <param name="name" type="String">System.String</param>
            /// <param name="firstName" type="String">System.String</param>
            /// <param name="lastName" type="String">System.String</param>
            /// <param name="address1" type="String">System.String</param>
            /// <param name="address2" type="String">System.String</param>
            /// <param name="streetSuffixId" type="String">System.String</param>
            /// <param name="city" type="String">System.String</param>
            /// <param name="stateId" type="String">System.String</param>
            /// <param name="county" type="String">System.String</param>
            /// <param name="zip" type="String">System.String</param>
            /// <param name="mainPhoneAreaCode" type="String">System.String</param>
            /// <param name="mainPhoneTypeId" type="String">System.String</param>
            /// <param name="mainPhonePrefix" type="String">System.String</param>
            /// <param name="mainPhoneSuffix" type="String">System.String</param>
            /// <param name="storeCode" type="String">System.String</param>
            /// <param name="storeKey" type="String">System.String</param>
            /// <param name="merchantId" type="String">System.String</param>
            /// <param name="corporateShop" type="Boolean">System.Boolean</param>
            /// <param name="franchiseNumber" type="String">System.String</param>
            /// <param name="succeededCallback" type="Function" optional="true" mayBeNull="true"></param>
            /// <param name="failedCallback" type="Function" optional="true" mayBeNull="true"></param>
            /// <param name="userContext" optional="true" mayBeNull="true"></param>
            ...
            ...
            ...

我想知道的是,如果这些///线是必要的,如果不是,是否有办法使ASP。NET压制他们?对我来说,它们看起来只是XML文档标记,这应该是不必要的。在我的c#中有大约8个WebMethod's,这些行加起来,如果可能的话,我想过滤掉它们。

抑制ASP.. NET pagememethods文档注释

这些行只是注释,在调试期间为开发人员提供方便。如果在web.config中设置了以下设置之一,则不会生成注释:

  • <deployment retail="false" />
  • <compilation debug="false" />

ScriptManager.ScriptMode属性显式设置为Release时,不生成加号注释。

生成PageMethods脚本的类是PageClientProxyGenerator。以上条件在ScriptManager源代码中有描述:

public bool IsDebuggingEnabled {
    get {
        // Returns false when:
        // - Deployment mode is set to retail (override all other settings)
        // - ScriptMode is set to Auto or Inherit, and debugging it not enabled in web.config
        // - ScriptMode is set to Release
        if (DeploymentSectionRetail) {
            return false;
        }
        if (ScriptMode == ScriptMode.Auto || ScriptMode == ScriptMode.Inherit) {
            return AppLevelCompilationSection.Debug;
        }
        return (ScriptMode == ScriptMode.Debug);
    }
}