Вот простой фрагмент кода, который можно использовать в качестве руководства:
//first at the class level, create a private variable for the client.
private Service1Client _client;
private Button _addButon;
private TextView _txtDeptName;
//Initialize the _client in the OnCreate() method.
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var endpoint = new EndpointAddress("http://<ipAddress:port>/Service1.svc");
var binding = new BasicHttpBinding{
Name = "basicHttpBinding",
MaxBufferSize = 2147483647,
MaxReceivedMessageSize = 2147483647
};
TimeSpan timeout = new TimeSpan(0, 0, 30);
binding.SendTimeout = timeout;
binding.OpenTimeout = timeout;
binding.ReceiveTimeout = timeout;
_client = new Service1Client(binding, endpoint);
_client.AddDeptCompleted += ClientAddDeptCompleted;
_addButton = FindViewById<Button>(Android.Resources.Id.Add);
_addbutton.Click += AddButton_Clicked;
_txtDeptName = FindViewbyId<TextView>(Android.Resources.Id.Name);
}
//Then within the event handlers, do something like this
public void AddButton_Clicked(object sender, EventArgs e)
{
_client.AddDeptAsync(_txtDeptName.Text);
}
//Handle the request completed event.
private void ClientAddDeptCompleted(object sender, AddDeptCompletedEventArgs addDeptCompletedEventArgs)
{
//TODO: Something with the notification that the request has completed.
}
Вы также должны следовать аналогичному шаблону для других кнопок и служебных вызовов. Прошу прощения, если я сделал некоторые опечатки. Я перехожу из немного памяти и некоторых инструкций WCF на сайт Xamarin.
Вы должны использовать компоновщик C ++ или использовать g++
в качестве драйвера ссылки вместо gcc
.
Проблема в том, что базовый компоновщик не будет связываться с библиотеками времени выполнения C ++ (то же самое было бы верно для статической библиотеки Fortran). Драйвер C ++ для вашего компилятора добавит вам эти флаги.