如何将枚举值传递给wcf webservice



ksoap2可以传递一个enum给webservice吗?

有一个WCF webservice:

[OperationContract]
string TestEnum(CodeType code);

CodeType is dotnet enum:

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

我如何在android客户端调用这个wcf webservice ?

i创建一个enum CodeType并实现KvmSerializable。在getPropertyInfo方法中,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 = ?;
    }
}

谢谢你的帮助。

我刚刚通过Marshal解决了enum问题。

我创建了一个java枚举"复制"。net枚举。然后我为它写了一个Marshal-Class:

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

然后,当调用需要发送MyEnum-Values的方法时:

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

备注 SOAP_REMOTE_NAMESPACE是要使用的enum的数据契约命名空间!如果您不确定,请参阅wsdl文件来查找。应该看起来像"http://schemas.datacontract.org/2009/08/Your.dotNet.Namespace"。

我希望这对你也有用。

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

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

?

编辑:

稍微搜索一下也发现了这个,这可能是有用的…

相关内容

  • 没有找到相关文章

最新更新