public T CreateFromResource <T>(string resourcePath, Assembly assembly, IXmlLineInfo lineInfo) where T : new() { var rd = new T(); var resourceLoadingResponse = System.Maui.Internals.ResourceLoader.ResourceProvider2?.Invoke(new System.Maui.Internals.ResourceLoader.ResourceLoadingQuery { AssemblyName = assembly.GetName(), ResourcePath = resourcePath, Instance = rd, }); var alternateResource = resourceLoadingResponse?.ResourceContent; if (alternateResource != null) { XamlLoader.Load(rd, alternateResource, resourceLoadingResponse.UseDesignProperties); return(rd); } var resourceId = XamlResourceIdAttribute.GetResourceIdForPath(assembly, resourcePath); if (resourceId == null) { throw new XamlParseException($"Resource '{resourcePath}' not found.", 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)) { rd.LoadFromXaml(reader.ReadToEnd(), assembly); return(rd); } } }