0

我正在使用 ASP.Net Ajax 的页面方法,但我遇到了一个问题,即未呈现枚举的定义。这是我所拥有的:

public class Contact
{
    public string FirstName{get;set;}
    public IList<PhoneNumber> PhoneNumbers{get;set;}
}

public class PhoneNumber
{
   public string Number{get;set;}
   public PhoneNumberType {get;set;}
}

public enum PhoneNumberType
{
   Home,
   Work,
   Fax,
   Cell
}

然后我有一个简单的网络方法,例如:

[WebMethod]
public static Contact GetContact(Guid id)
{
   return ....;
}

在客户端,我最终得到了一个 MyNamespace.Contact 类;但是,我没有 MyNamespace.PhoneNumber 或 MyNameSpace.PhoneNumberType。我发现如果我显式添加只返回这些类型的虚假网络方法,那么客户端类型就会被呈现。有没有办法强制将该枚举呈现为假网络方法?

我想要枚举,因为我需要遍历 List<> 并基于 PhoneNumberType 做一些不同的事情。我宁愿不硬编码幻数或硬编码枚举定义。

4

1 回答 1

0

我需要将 GenerateScriptType 属性添加到方法签名中。

所以我的页面方法是现在

[WebMethod]
[GenerateScriptType(typeof(PhoneNumberType))]
[GenerateScriptType(typeof(PhoneNumber))]
public static Contact GetContact(Guid id)
{
}
于 2009-03-09T16:53:18.187 回答