public ResourceDictionary CreateResourceDictionary(string resourcePath, Assembly assembly, IXmlLineInfo lineInfo) { var resourceId = XamlResourceIdAttribute.GetResourceIdForPath(assembly, resourcePath); if (resourceId == null) { throw new XamlParseException($"Resource '{resourcePath}' not found.", lineInfo); } var alternateResource = Xamarin.Forms.Internals.ResourceLoader.ResourceProvider?.Invoke(resourcePath); if (alternateResource != null) { var rd = new ResourceDictionary(); rd.LoadFromXaml(alternateResource); return(rd); } using (var stream = assembly.GetManifestResourceStream(resourceId)) { if (stream == null) { throw new XamlParseException($"No resource found for '{resourceId}'.", lineInfo); } using (var reader = new StreamReader(stream)) { var rd = new ResourceDictionary(); rd.LoadFromXaml(reader.ReadToEnd()); return(rd); } } }
public ResourceDictionary CreateResourceDictionary(string resourceID, Assembly assembly, IXmlLineInfo lineInfo) { using (var stream = assembly.GetManifestResourceStream(resourceID)) { if (stream == null) { throw new XamlParseException($"No resource found for '{resourceID}'.", lineInfo); } using (var reader = new StreamReader(stream)) { var rd = new ResourceDictionary(); rd.LoadFromXaml(reader.ReadToEnd()); return(rd); } } }