示例#1
0
        private ConnectorMessagesImpl LoadMessages(Assembly assembly,
                                                   LocalConnectorInfoImpl info,
                                                   String[] nameBases)
        {
            if (nameBases == null || nameBases.Length == 0)
            {
                String pkage =
                    info.ConnectorClass.RawType.Namespace;
                nameBases = new String[] { pkage + ".Messages" };
            }
            ConnectorMessagesImpl rv = new ConnectorMessagesImpl();

            CultureInfo[] cultures = GetLocalizedCultures(assembly);
            for (int i = nameBases.Length - 1; i >= 0; i--)
            {
                String          nameBase = nameBases[i];
                ResourceManager manager  = new ResourceManager(nameBase, assembly);
                foreach (CultureInfo culture in cultures)
                {
                    ResourceSet resourceSet = manager.GetResourceSet(culture, true, false);
                    if (resourceSet != null)
                    {
                        IDictionary <string, string> temp =
                            CollectionUtil.GetValue(rv.Catalogs, culture, null);
                        if (temp == null)
                        {
                            temp = new Dictionary <string, string>();
                            rv.Catalogs[culture] = temp;
                        }
                        foreach (System.Collections.DictionaryEntry entry in resourceSet)
                        {
                            String key = "" + entry.Key;
                            String val = "" + entry.Value;
                            temp[key] = val;
                        }
                    }
                }
            }

            return(rv);
        }
        public void TestConnectorMessages()
        {
            ConnectorMessagesImpl        v1         = new ConnectorMessagesImpl();
            IDictionary <String, String> defaultMap = new Dictionary <String, String>();

            defaultMap["key1"] = "val1";
            IDictionary <CultureInfo, IDictionary <String, String> > messages =
                new Dictionary <CultureInfo, IDictionary <String, String> >();

            messages[new CultureInfo("en")] = defaultMap;
            messages[new CultureInfo("")]   = defaultMap;
            v1.Catalogs = (messages);

            ConnectorMessagesImpl v2 = (ConnectorMessagesImpl)
                                       CloneObject(v1);

            Assert.IsTrue(
                CollectionUtil.SetsEqual(messages[new CultureInfo("")],
                                         v2.Catalogs[new CultureInfo("")]));
            Assert.IsTrue(
                CollectionUtil.SetsEqual(messages[new CultureInfo("en")],
                                         v2.Catalogs[new CultureInfo("en")]));
        }