Я использую интерфейс в качестве типа возврата веб-метода в веб-службе.
[WebMethod]
//[XmlInclude(typeof(BillerConnectAPIStatus))]
public IBillerConnectAPIStatus PerformInquiry()
{
BillerConnectAPIStatus oBillerConnectApitStatue = new BillerConnectAPIStatus();
return oBillerConnectApitStatue;
}
Интерфейс:
public interface IBillerConnectAPIStatus
{
[XmlAttribute]
string Description { get; set; }
[XmlAttribute]
int Status { get; set; }
}
Класс, реализующий интерфейс:
[Serializable]
public class BillerConnectAPIStatus : IBillerConnectAPIStatus
{
string _description;
int _status;
//[XmlElement]
[XmlAttribute]
public string Description
{
get
{
return _description;
}
set
{
_description = value;
}
}
//[XmlElement]
[XmlAttribute]
public int Status
{
get
{
return _status;
}
set
{
_status = value;
}
}
public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
{
throw new NotImplementedException();
}
}
Но во время выполнения выдает ошибку:
Невозможно сериализовать интерфейс Billerconnect_BillerApp_Interfaces.IBillerConnectAPIStatus.
Описание: во время выполнения текущего веб-запроса возникла необработанная исключительная ситуация.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.NotSupportedException: невозможно сериализовать интерфейс Billerconnect_BillerApp_Interfaces.IBillerConnectAPIStatus.
Я применил атрибут [Serializable] к классу, который реализует интерфейс, поскольку я знаю, что не могусериализовать интерфейс.