我正在尝试做一个简单的应用程序,它是WCF服务,它将由WPF应用程序和xamarin android应用程序使用。
在WPF应用程序中,消耗服务的客户端代理的配置位于app.config文件中,因此我可以在此处设置服务的地址。
但是,在android应用程序中,我看到的所有示例都在代码中创建绑定,并且地址在代码中设置。像这样:
namespace ServiceAgent
{
public class CalculatorServiceAgent
{
private static EndpointAddress endPoint = new EndpointAddress("http://192.168.216.1:1234/CalculatorService.svc");
private static BasicHttpBinding binding;
static CalculatorServiceAgent()
{
binding = CreateBasicHttpBinding();
}
private static BasicHttpBinding CreateBasicHttpBinding()
{
BasicHttpBinding 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;
return binding;
}
public async static Task<int> DoSum(int value1, int value2)
{
ICalculatorService _client;
try
{
_client = new CalculatorServiceClient(binding, endPoint);
var res = Task<int>.Factory.FromAsync(_client.BeginDoSum, _client.EndDoSum, value1, value2, null);
await res;
return res.Result;
}
catch (Exception)
{
throw;
}
}
}
}
但是在这种情况下,我看到的问题是,如果更改了服务的地址,则必须修改应用程序并再次编译,如果配置可以在外部配置文件中,则可以避免。< / p>
所以我的问题是,在Android应用程序中是否可以以与WPF应用程序相同的方式在代码外部进行配置?
谢谢。