Dalam aplikasi Xamarin iOS saya dapat menentukan implementasi HttpClient mana yang akan digunakan saat runtime:
https://developer.xamarin.com/guides/cross-platform/macios/http-stack/
Namun pengaturan ini hanya mempengaruhi HttpClients yang dibuat menggunakan ctor default:
var client = new HttpClient()
Tetapi bagaimana jika saya ingin menambahkan beberapa intersepsi permintaan ke klien http saya dengan menyediakan DelegatingHandler khusus ke ctor? Saya kemudian akan menggunakan ctor lain:
var myDel = new MyDel(RUNTIME_HANDLER_GOES_HERE);
var client = new HttpClient(myDel);
Idealnya saat runtime saya perlu tahu httpHandler mana yang dipilih dalam pengaturan proyek waktu kompilasi agar myDel membungkusnya saat runtime. Bagaimana saya melakukannya?
UPD Saya dapat menemukan kode yang bertanggung jawab untuk memilih pengendali yang sesuai di sumber mono: https://github.com/mono/mono/blob/master/mcs/class/System.Net.Http/HttpClientEx.cs#L28 namun kelas RuntimeOptions bersifat internal dan saya hanya dapat menggunakannya melalui refleksi saat runtime. Namun dalam kasus ini, tautan Xamarin menghapus RuntimeOptions dari dll dalam mode rilis dan aplikasi mogok dalam rilis dan pembuatan adhoc tetapi tidak dalam debug. Adakah yang tahu apa yang terjadi pada RuntimeOptions di xamarin build yang mendukung linker sehingga saya dapat menggunakannya untuk mengetahui httphandler runtime?