Можно ли обмениваться данными со службой WCF без использования NETCFSvcUtil для создания прокси?
Я пытаюсь вызвать службу WCF на мобильном устройстве с помощью компактной среды. Я не хочу использовать NETCFSvcUtil для генерации прокси по определенной причине .
У меня есть этот пример кода на мобильной стороне для его проверки:
// This is the contract defined at the client side (mobile device)
public interface IService1
{
string GetData(int value);
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string address = "http://192.168.30.88:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/";
// It throws here ....
var channelFactory = CreateDefaultBinding().BuildChannelFactory<IService1>(new System.ServiceModel.Channels.BindingParameterCollection());
var channel = channelFactory.CreateChannel(new EndpointAddress(new Uri(address)));
var result = channel.GetData(5);
this.Text = result.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
public static System.ServiceModel.Channels.Binding CreateDefaultBinding()
{
System.ServiceModel.Channels.CustomBinding binding = new System.ServiceModel.Channels.CustomBinding();
binding.Elements.Add(new System.ServiceModel.Channels.TextMessageEncodingBindingElement(System.ServiceModel.Channels.MessageVersion.Soap11, System.Text.Encoding.UTF8));
binding.Elements.Add(new System.ServiceModel.Channels.HttpTransportBindingElement());
return binding;
}
}
Но я получаю это исключение: запрошен тип канала 'CallingWCFFromDevice.IService1', но Binding 'CustomBinding 'не поддерживает его или неправильно настроен для его поддержки.Имя параметра: TChannel
Любой ключ к пониманию того, что происходит?Я предполагаю, что я не использую BuildChannelFactory правильно ...