definições de objeto não está sendo processado para ASP.NET métodos de página

StackOverflow https://stackoverflow.com/questions/627014

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu estou usando métodos de página do ASP.Net AJAX e eu tenho uma questão que a definição de uma enumeração não está sendo processado. Aqui está o que eu tenho:

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
}

Em seguida, tenho um método web simples, como:

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

No lado do cliente eu acabar com uma classe MyNamespace.Contact; no entanto, eu não tenho um MyNamespace.PhoneNumber ou MyNameSpace.PhoneNumberType. Descobri que se eu adicionar explicitamente webmethods falsos que simplesmente devolver esses tipos então tipos lado do cliente são prestados. Existe uma maneira de forçar que enum a ser prestado outros métodos falso web, então?

Eu quero o enum porque eu preciso para percorrer que List <> e com base no PhoneNumberType fazer algo diferente. Eu números mágicos prefere não codificar ou codificar o deffinition enum.

Foi útil?

Solução

Eu preciso adicionar atributo GenerateScriptType para a assinatura do método.

Então, meu método de página é agora

[WebMethod]
[GenerateScriptType(typeof(PhoneNumberType))]
[GenerateScriptType(typeof(PhoneNumber))]
public static Contact GetContact(Guid id)
{
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top