public override void Load(AssetLoaded <T> callback = null) { try { if (!waiting) { Logger.Log(String.Format("Updating WebXMLFileAsset {0} from {1}", typeof(T).Name, url)); waiting = true; webclient.DownloadStringCompleted -= handler; handler = (object sender, System.Net.DownloadStringCompletedEventArgs e) => { if (e.Error != null) { Logger.Log(String.Format("Error retrieving WebXMLFileAsset {0} from {1}: {2}", typeof(T).Name, url, e.Error.Message)); } else { try { using (StringReader reader = new StringReader(e.Result)) { XmlSerializer serializer = new XmlSerializer(typeof(T), attr); T result = (T)serializer.Deserialize(reader); if (result != null) { TaskDispatcher.QueueOnMainThread(() => { instance = result; Logger.Log(String.Format("Successfully updated WebXMLFileAsset {0} from {1}", typeof(T).Name, url)); }); } } } catch (Exception ex) { Logger.Log(String.Format("Error retrieving WebXMLFileAsset {0} from {1}: {2}", typeof(T).Name, url, ex.Message)); } } TaskDispatcher.QueueOnMainThread(() => { callback?.Invoke(this); waiting = false; }); }; webclient.DownloadStringCompleted += handler; webclient.DownloadStringAsync(url); } } catch (Exception ex) { Logger.Log(String.Format("Error retrieving WebXMLFileAsset {0} from {1}: {2}", typeof(T).Name, url, ex.Message)); } }
static StackObject *add_DownloadStringCompleted_2(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); System.Net.DownloadStringCompletedEventHandler @value = (System.Net.DownloadStringCompletedEventHandler) typeof(System.Net.DownloadStringCompletedEventHandler).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 8); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); System.Net.WebClient instance_of_this_method = (System.Net.WebClient) typeof(System.Net.WebClient).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 0); __intp.Free(ptr_of_this_method); instance_of_this_method.DownloadStringCompleted += value; return(__ret); }