wcf client 调用WebService
主要是OperationContract要加Action=“Namespace+方法名”参数
Namespace是和对方的webservice 的Namespace相同
[ServiceContract(Namespace = "http://abc.org/")]
[XmlSerializerFormatAttribute]
public interface IGameServer
{
[OperationContract(Action = "http://abc.org/GetGameList")]
List<GameInfo> GetGameList();
}
[XmlSerializerFormatAttribute]
public interface IGameServer
{
[OperationContract(Action = "http://abc.org/GetGameList")]
List<GameInfo> GetGameList();
}
主要是XmlSerializerFormatAttribute属性
本地DataContract映射到对方
主要是通过DataContract 和DataMember 的Name属性
[DataContract(Namespace="http://abc.org/")]
public partial class GameInfo {
#region Id
private Int32 m_id;
/// <summary> </summary>
///
[XmlElement(ElementName="GameID")]
public Int32 Id {
get { return m_id; }
set { m_id = value;}
}
#endregion
#region Name
private String m_name;
/// <summary> </summary>
///
[DataMember(Name="GameName")]
public String Name {
get { return m_name; }
set { m_name = value;}
}
#endregion
#region Note
private String m_note;
/// <summary> </summary>
public String Note {
get { return m_note; }
set { m_note = value;}
}
#endregion
}
public partial class GameInfo {
#region Id
private Int32 m_id;
/// <summary> </summary>
///
[XmlElement(ElementName="GameID")]
public Int32 Id {
get { return m_id; }
set { m_id = value;}
}
#endregion
#region Name
private String m_name;
/// <summary> </summary>
///
[DataMember(Name="GameName")]
public String Name {
get { return m_name; }
set { m_name = value;}
}
#endregion
#region Note
private String m_note;
/// <summary> </summary>
public String Note {
get { return m_note; }
set { m_note = value;}
}
#endregion
}