private string GetStringHelper(StringResourceReference resourceReference, out LoadingResult result, out AssemblyBindingStatus bindingStatus) { result = LoadingResult.AssemblyNotFound; bindingStatus = AssemblyBindingStatus.NotFound; AssemblyLoadResult result2 = null; if (this._resourceReferenceToAssemblyCache.Contains(resourceReference)) { result2 = this._resourceReferenceToAssemblyCache[resourceReference] as AssemblyLoadResult; bindingStatus = result2.status; } else { bool flag; result2 = new AssemblyLoadResult { a = this.LoadAssemblyFromResourceReference(resourceReference, out flag) }; if (result2.a == null) { result2.status = AssemblyBindingStatus.NotFound; } else { result2.status = flag ? AssemblyBindingStatus.FoundInGac : AssemblyBindingStatus.FoundInPath; } this._resourceReferenceToAssemblyCache.Add(resourceReference, result2); } bindingStatus = result2.status; if (result2.a == null) { result = LoadingResult.AssemblyNotFound; return null; } try { string str = ResourceManagerCache.GetResourceString(result2.a, resourceReference.baseName, resourceReference.resourceId); if (str == null) { result = LoadingResult.StringNotFound; return null; } result = LoadingResult.NoError; return str; } catch (InvalidOperationException) { result = LoadingResult.ResourceNotFound; } catch (MissingManifestResourceException) { result = LoadingResult.ResourceNotFound; } catch (Exception) { throw; } return null; }
private string GetStringHelper(StringResourceReference resourceReference, out LoadingResult result, out AssemblyBindingStatus bindingStatus) { result = LoadingResult.AssemblyNotFound; bindingStatus = AssemblyBindingStatus.NotFound; AssemblyLoadResult loadResult = null; // try first to see if we have an assembly reference in the cache if (_resourceReferenceToAssemblyCache.Contains(resourceReference)) { loadResult = _resourceReferenceToAssemblyCache[resourceReference] as AssemblyLoadResult; bindingStatus = loadResult.status; } else { loadResult = new AssemblyLoadResult(); // we do not have an assembly, we try to load it bool foundInGac; loadResult.a = LoadAssemblyFromResourceReference(resourceReference, out foundInGac); if (loadResult.a == null) { loadResult.status = AssemblyBindingStatus.NotFound; } else { loadResult.status = foundInGac ? AssemblyBindingStatus.FoundInGac : AssemblyBindingStatus.FoundInPath; } // add to the cache even if null _resourceReferenceToAssemblyCache.Add(resourceReference, loadResult); } bindingStatus = loadResult.status; if (loadResult.a == null) { // we failed the assembly loading result = LoadingResult.AssemblyNotFound; return(null); } else { resourceReference.assemblyLocation = loadResult.a.Location; } // load now the resource from the resource manager cache try { string val = ResourceManagerCache.GetResourceString(loadResult.a, resourceReference.baseName, resourceReference.resourceId); if (val == null) { result = LoadingResult.StringNotFound; return(null); } else { result = LoadingResult.NoError; return(val); } } catch (InvalidOperationException) { result = LoadingResult.ResourceNotFound; } catch (MissingManifestResourceException) { result = LoadingResult.ResourceNotFound; } catch (Exception e) // will rethrow { Diagnostics.Assert(false, "ResourceManagerCache.GetResourceString unexpected exception " + e.GetType().FullName); throw; } return(null); }
internal void VerifyResource(StringResourceReference resourceReference, out LoadingResult result, out AssemblyBindingStatus bindingStatus) { GetStringHelper(resourceReference, out result, out bindingStatus); }
private string GetStringHelper(StringResourceReference resourceReference, out LoadingResult result, out AssemblyBindingStatus bindingStatus) { result = LoadingResult.AssemblyNotFound; bindingStatus = AssemblyBindingStatus.NotFound; AssemblyLoadResult loadResult = null; // try first to see if we have an assembly reference in the cache if (_resourceReferenceToAssemblyCache.Contains(resourceReference)) { loadResult = _resourceReferenceToAssemblyCache[resourceReference] as AssemblyLoadResult; bindingStatus = loadResult.status; } else { loadResult = new AssemblyLoadResult(); // we do not have an assembly, we try to load it bool foundInGac; loadResult.a = LoadAssemblyFromResourceReference(resourceReference, out foundInGac); if (loadResult.a == null) { loadResult.status = AssemblyBindingStatus.NotFound; } else { loadResult.status = foundInGac ? AssemblyBindingStatus.FoundInGac : AssemblyBindingStatus.FoundInPath; } // add to the cache even if null _resourceReferenceToAssemblyCache.Add(resourceReference, loadResult); } bindingStatus = loadResult.status; if (loadResult.a == null) { // we failed the assembly loading result = LoadingResult.AssemblyNotFound; return null; } // load now the resource from the resource manager cache try { string val = ResourceManagerCache.GetResourceString(loadResult.a, resourceReference.baseName, resourceReference.resourceId); if (val == null) { result = LoadingResult.StringNotFound; return null; } else { result = LoadingResult.NoError; return val; } } catch (InvalidOperationException) { result = LoadingResult.ResourceNotFound; } catch (MissingManifestResourceException) { result = LoadingResult.ResourceNotFound; } catch (Exception e) // will rethrow { Diagnostics.Assert(false, "ResourceManagerCache.GetResourceString unexpected exception " + e.GetType().FullName); throw; } return null; }
internal void VerifyResource(StringResourceReference resourceReference, out LoadingResult result, out AssemblyBindingStatus bindingStatus) { GetStringHelper(resourceReference, out result, out bindingStatus); }
private string GetStringHelper(StringResourceReference resourceReference, out LoadingResult result, out AssemblyBindingStatus bindingStatus) { result = LoadingResult.AssemblyNotFound; bindingStatus = AssemblyBindingStatus.NotFound; AssemblyLoadResult result2 = null; if (this._resourceReferenceToAssemblyCache.Contains(resourceReference)) { result2 = this._resourceReferenceToAssemblyCache[resourceReference] as AssemblyLoadResult; bindingStatus = result2.status; } else { bool flag; result2 = new AssemblyLoadResult { a = this.LoadAssemblyFromResourceReference(resourceReference, out flag) }; if (result2.a == null) { result2.status = AssemblyBindingStatus.NotFound; } else { result2.status = flag ? AssemblyBindingStatus.FoundInGac : AssemblyBindingStatus.FoundInPath; } this._resourceReferenceToAssemblyCache.Add(resourceReference, result2); } bindingStatus = result2.status; if (result2.a == null) { result = LoadingResult.AssemblyNotFound; return(null); } try { string str = ResourceManagerCache.GetResourceString(result2.a, resourceReference.baseName, resourceReference.resourceId); if (str == null) { result = LoadingResult.StringNotFound; return(null); } result = LoadingResult.NoError; return(str); } catch (InvalidOperationException) { result = LoadingResult.ResourceNotFound; } catch (MissingManifestResourceException) { result = LoadingResult.ResourceNotFound; } catch (Exception) { throw; } return(null); }