public Stream Get(string path, CultureInfo culture = null)
 {
     culture = culture ?? Thread.CurrentThread.CurrentCulture;
     var fullName = ToFullNameWithNamespace(path);
     var attemptedAssemblies = new List<Assembly>();
     foreach (var possibleCulture in culture.GetPossibleCultures())
     {
         Assembly cultureAssembly;
         if (!_baseAssembly.TryGetSatteliteAssembly(possibleCulture, out cultureAssembly))
         {
             continue;
         }
         attemptedAssemblies.Add(cultureAssembly);
         var stream = cultureAssembly.GetManifestResourceStream(fullName);
         if (stream != null)
         {
             return stream;
         }
     }
     var messageBuilder = new StringBuilder();
     messageBuilder.AppendLine("The specified resource was not found.")
         .AppendLine(string.Format("Resource name: {0}. Attempted assemblies:", fullName));
     foreach (var attemptedAssembly in attemptedAssemblies)
     {
         messageBuilder.AppendLine(string.Format(" - {0}", attemptedAssembly.FullName));
     }
     throw new ResourceNotFoundException(messageBuilder.ToString(), path);
 }
 public Stream Get(string path, CultureInfo culture = null)
 {
     culture = culture ?? Thread.CurrentThread.CurrentCulture;
     var fullName = ToFullNameWithNamespace(path);
     foreach (var possibleCulture in culture.GetPossibleCultures())
     {
         Assembly cultureAssembly;
         if (!_baseAssembly.TryGetSatteliteAssembly(possibleCulture, out cultureAssembly))
         {
             continue;
         }
         var stream = cultureAssembly.GetManifestResourceStream(fullName);
         if (stream != null)
         {
             return stream;
         }
     }
     return null;
 }