Добрый день!
Имеется WCF-клиент, используется SOAP и basicHttpBinding. Сервисом является программа на C++, работающая под Linux. Та часть сервиса, которая отвечает за взаимодействие с .net-клиентом генерируется при помощи gSOAP по согласованной обеими сторонами WSDL.
Linux-сервис требует, чтобы строки, которые к нему приходят от .net-клиента были в кодировке UTF-8, а не в UTF-16, которая по-умолчанию в .net.
Пробовал решить проблему с использованием события десериализации:
[DataMember]
public string Value { get; set; }
...
[OnSerializing]
private void OnSerializing(StreamingContext context)
{
var utf8 = new UTF8Encoding();
if (!string.IsNullOrEmpty(Value))
{
var encodedBytes = utf8.GetBytes(Value);
Value = utf8.GetString(encodedBytes);
}
}
Но на сервис по прежнему не приходит UTF-8. Есть идеи как решить эту проблему?
Never argue with a woman who reads. It's likely she can also think. (c)
Never argue with a woman who reads. It's likely she can also think. (c)