private void GetResourceStringCode(object userDataIn) { GetResourceStringUserData data = (GetResourceStringUserData)userDataIn; Environment.ResourceHelper resourceHelper = data.m_resourceHelper; string key = data.m_key; CultureInfo culture = data.m_culture; Monitor.Enter(resourceHelper, ref data.m_lockWasTaken); if (((resourceHelper.currentlyLoading != null) && (resourceHelper.currentlyLoading.Count > 0)) && resourceHelper.currentlyLoading.Contains(key)) { try { new StackTrace(true).ToString(StackTrace.TraceFormat.NoResourceLookup); } catch (StackOverflowException) { } catch (NullReferenceException) { } catch (OutOfMemoryException) { } data.m_retVal = "[Resource lookup failed - infinite recursion or critical failure detected.]"; } else { if (resourceHelper.currentlyLoading == null) { resourceHelper.currentlyLoading = new Stack(4); } if (!resourceHelper.resourceManagerInited) { RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { RuntimeHelpers.RunClassConstructor(typeof(ResourceManager).TypeHandle); RuntimeHelpers.RunClassConstructor(typeof(ResourceReader).TypeHandle); RuntimeHelpers.RunClassConstructor(typeof(RuntimeResourceSet).TypeHandle); RuntimeHelpers.RunClassConstructor(typeof(BinaryReader).TypeHandle); resourceHelper.resourceManagerInited = true; } } resourceHelper.currentlyLoading.Push(key); if (resourceHelper.SystemResMgr == null) { resourceHelper.SystemResMgr = new ResourceManager(this.m_name, typeof(object).Assembly); } string str2 = resourceHelper.SystemResMgr.GetString(key, null); resourceHelper.currentlyLoading.Pop(); data.m_retVal = str2; } }
private void GetResourceStringBackoutCode(object userDataIn, bool exceptionThrown) { GetResourceStringUserData data = (GetResourceStringUserData)userDataIn; Environment.ResourceHelper resourceHelper = data.m_resourceHelper; if (exceptionThrown && data.m_lockWasTaken) { resourceHelper.SystemResMgr = null; resourceHelper.currentlyLoading = null; } if (data.m_lockWasTaken) { Monitor.Exit(resourceHelper); } }
public GetResourceStringUserData(Environment.ResourceHelper resourceHelper, string key, CultureInfo culture) { this.m_resourceHelper = resourceHelper; this.m_key = key; this.m_culture = culture; }
private static void InitResourceHelper() { bool flag = false; RuntimeHelpers.PrepareConstrainedRegions(); try { Monitor.Enter(Environment.InternalSyncObject, ref flag); if (Environment.m_resHelper == null) { Environment.ResourceHelper resHelper = new Environment.ResourceHelper("mscorlib"); Thread.MemoryBarrier(); Environment.m_resHelper = resHelper; } } finally { if (flag) { Monitor.Exit(Environment.InternalSyncObject); } } }
public GetResourceStringUserData(Environment.ResourceHelper resourceHelper, string key) { this.m_resourceHelper = resourceHelper; this.m_key = key; }