AjaxNamespaceAttribute.cs
上传用户:szgaoree
上传日期:2009-01-05
资源大小:74k
文件大小:1k
源码类别:

Ajax

开发平台:

C#

  1. using System;
  2. namespace AjaxPro
  3. {
  4. /// <summary>
  5. /// This attribute can be used to specified a different namespace for the client-side representation.
  6. /// </summary>
  7. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
  8. public class AjaxNamespaceAttribute : Attribute
  9. {
  10. private string _clientNS = null;
  11. /// <summary>
  12. /// This attribute can be used to specified a different namespace for the client-side representation.
  13. /// </summary>
  14. /// <param name="clientNS">The namespace to be used on the client-side JavaScript.</param>
  15. public AjaxNamespaceAttribute(string clientNS)
  16. {
  17. string pattern = "^[a-zA-Z_]{1}([a-zA-Z_]*([\d]*)?)*((\.)?[a-zA-Z_]+([\d]*)?)*$";
  18.             if(!System.Text.RegularExpressions.Regex.IsMatch(clientNS, pattern) || clientNS.StartsWith(".") || clientNS.EndsWith("."))
  19.                 throw new NotSupportedException("The namespace '" + clientNS + "' is not supported.");
  20. _clientNS = clientNS;
  21. }
  22. #region Internal Properties
  23. internal string ClientNamespace
  24. {
  25. get
  26. {
  27.                 if (_clientNS != null && _clientNS.Trim().Length > 0)
  28.                     return _clientNS.Replace("-", "_").Replace(" ", "_");
  29. return _clientNS;
  30. }
  31. }
  32. #endregion
  33. }
  34. }