Xamarin.Androidでハマったので。
Wcfにアクセスするときにサービスインターフェイスを使って簡単にアクセスするために
System.ServiceModel.ChannelFactoryとか使うと楽です。
PCアプリとXamarin.Androidアプリで同じようにかけてとっても便利。
時短コード。
なんですけどXamarin.Androidでdebugしていると全く問題ないのに、ReleaseでPackage作ってテストってなるとエラーが出てしまいました。
var cf = new ChannelFactory<IXXXXService>(new BasicHttpBinding()
, new EndpointAddress("http://localhost"));
var channel = cf.CreateChannel(); // Releaseだとエラーになる。
なんかリンカーファイルをおこなきゃいけないみたいです。
英語弱いので理由に関しては詳しくはわかんなかったです。
リフレクションを使っているのでウンタラカンタラ。
プロジェクトにlinker.xmlファイルを追加します。
中身は
<?xml version="1.0" encoding="utf-8" ?>
<linker>
<assembly fullname="System.ServiceModel">
<type fullname="System.ServiceModel.Channels.ChannelFactoryBase`1">
<method name="CreateChannel" />
</type>
</assembly>
</linker>
ファイルのビルドアクションを LinkDescription に変更します。
これでオッケー。