2004-01-09 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / corlib / System.Resources / ResourceManager.cs
index 5b2f201b305588dbe90ac33aad4e7fcc916050ff..1f7182547fed8d3065e566bd9c97b72ed1c99316 100644 (file)
@@ -49,7 +49,9 @@ namespace System.Resources
                        
                        BaseNameField = resourceSource.FullName;
                        MainAssembly = resourceSource.Assembly;
-                       resourceSetType = resourceSource;
+
+                       /* Temporary workaround for bug 43567 */
+                       resourceSetType = typeof(ResourceSet);
                        neutral_culture = GetNeutralResourcesLanguage(MainAssembly);
                }
                
@@ -248,6 +250,13 @@ namespace System.Resources
                {
                        ResourceSet set;
                        
+                       if (culture == null) {
+                               string msg = String.Format ("Could not find any resource appropiate for the " +
+                                                           "specified culture or its parents (assembly:{0})",
+                                                           MainAssembly != null ? MainAssembly.GetName ().Name : "");
+                                                           
+                               throw new MissingManifestResourceException (msg);
+                       }
                        /* if we already have this resource set, return it */
                        set=(ResourceSet)ResourceSets[culture];
                        if(set!=null) {
@@ -281,6 +290,13 @@ namespace System.Resources
                                         * with it?
                                         */
                                        set=(ResourceSet)Activator.CreateInstance(resourceSetType, args);
+                               } else if (culture == CultureInfo.InvariantCulture) {
+                                       string msg = "Could not find any resource appropiate for the " +
+                                                    "specified culture or its parents (assembly:{0})";
+                                                    
+                                       msg = String.Format (msg, MainAssembly != null ? MainAssembly.GetName ().Name : "");
+                                                           
+                                       throw new MissingManifestResourceException (msg);
                                }
                        } else if(resourceDir != null) {
                                /* File resources */