Cómo pasar un valor enum a wcf webservice

Ksoap2 puede pasar un enum a webservice?

Hay un wcf webservice:

[OperationContract] string TestEnum(CodeType code); 

CodeType es dotum enum:

  public enum CodeType { [EnumMember] ALL, [EnumMember] VehicleColor } 

¿Cómo puedo llamar a este wcf webservice en el cliente android?

Creo un enum CodeType y implementa KvmSerializable. En el método getPropertyInfo, ¿cuál es el valor de info.name (info.type)?

 public enum CodeType implements KvmSerializable, BaseInterface { ALL, VehicleColor; //....... @Override public void getPropertyInfo(int index, Hashtable properties, PropertyInfo info) { //info.namespace = this.NameSpace; info.name = ?; info.type = ?; } } 

Gracias por tu ayuda.

Acabo de solucionar ese enum-problema a través de Marshal.

Creé un Java-Enum "copiando" el .net uno. Entonces escribí una clase de mariscal para ella:

 public class MarshalEnum implements org.ksoap2.serialization.Marshal { ... // Singleton-Pattern public Object readInstance(XmlPullParser xpp, String string, String string1, PropertyInfo pi) throws IOException, XmlPullParserException { return MyEnum.valueOf( xpp.nextText() ); } public void writeInstance(XmlSerializer xs, Object o) throws IOException { xs.text(((MyEnum)o).name()); } public void register(SoapSerializationEnvelope sse) { sse.addMapping(sse.xsd, "MyEnum", MyEnum.class, MarshalEnum.getInstance() ); } } // class 

Luego, al llamar al método donde se enviarán MyEnum-Values:

 //... blah blah SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.addMapping(SOAP_REMOTE_NAMESPACE, "MyEnum", MyEnum.class, MarshalEnum.getInstance()); //... and so on. 

Tenga en cuenta que SOAP_REMOTE_NAMESPACE es el espacio de nombres de contrato de datos del enum a ser utilizado! Vea el archivo wsdl para encontrarlo si no está seguro. Debería parecer algo así como "http://schemas.datacontract.org/2009/08/Your.dotNet.Namespace".

Espero que esto vaya a funcionar para usted, también.

Tienes

 [ServiceContract] [ServiceKnownType(typeof(CodeType))] public interface ITheService { [OperationContract] string TestEnum(CodeType code); } 

y

 [DataContract] public enum CodeType { // ... } 

?

Editar:

Un poco de búsqueda también apareció esto , que puede ser de utilidad …

  • Leer WCF REST fecha de android
  • Servidor para la notificación de empuje de GCM a android en C #
  • Consumir un servicio WCF localhost utilizando kSOAP2 en el emulador
  • Cargar archivos de MS Word de Android a .Net WCF?
  • Consumir el servicio web de WCF desde la aplicación Android?
  • Ksoap2 Android - ¿cómo especificar un espacio de nombres para las propiedades secundarias de un objeto complejo?
  • Cómo consumir servicio WCF con Android
  • Recomendaciones para el formato / protocolo de .NET Web Service para Android, iPhone, etc.
  • Consumir servicio WCF en SSL en Android
  • Cómo enviar la cadena codificada base 64 de android a wcf
  • Cómo WCF Webservices se puede probar localmente desde el emulador de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.