internal static IResourceWriter CreateResourceWriter(Stream stream, ResourceType type, FileName parentDesignerSourceFileName)
 {
     if (type == ResourceType.Resources)
     {
         return(new ResourceWriter(stream));
     }
     return(new ResXResourceWriter(stream, t => ResXConverter.ConvertTypeName(t, parentDesignerSourceFileName)));
 }
示例#2
0
        public void SaveFile(string filename, Stream stream)
        {
            switch (Path.GetExtension(filename).ToLowerInvariant())
            {
            // write XML resource
            case ".resx":
                ResXResourceWriter rxw = new ResXResourceWriter(stream, t => ResXConverter.ConvertTypeName(t, filename));
                foreach (KeyValuePair <string, ResourceItem> entry in resources)
                {
                    if (entry.Value != null)
                    {
                        ResourceItem item = entry.Value;
                        rxw.AddResource(item.Name, item.ResourceValue);
                    }
                }
                foreach (KeyValuePair <string, ResourceItem> entry in metadata)
                {
                    if (entry.Value != null)
                    {
                        ResourceItem item = entry.Value;
                        rxw.AddMetadata(item.Name, item.ResourceValue);
                    }
                }
                rxw.Generate();
                rxw.Close();
                break;

            // write default resource
            default:
                ResourceWriter rw = new ResourceWriter(stream);
                foreach (KeyValuePair <string, ResourceItem> entry in resources)
                {
                    ResourceItem item = (ResourceItem)entry.Value;
                    rw.AddResource(item.Name, item.ResourceValue);
                }
                rw.Generate();
                rw.Close();
                break;
            }
        }
        public void SaveFile(FileName filename, Stream stream)
        {
            switch (Path.GetExtension(filename).ToLowerInvariant())
            {
            case ".resx":
                // write XML resource
                ResXResourceWriter rxw = new ResXResourceWriter(stream, t => ResXConverter.ConvertTypeName(t, filename));
                foreach (ResourceItem entry in resourceItems)
                {
                    if (entry != null)
                    {
                        rxw.AddResource(entry.ToResXDataNode(t => ResXConverter.ConvertTypeName(t, filename)));
                    }
                }
                foreach (ResourceItem entry in metadataItems)
                {
                    if (entry != null)
                    {
                        rxw.AddMetadata(entry.Name, entry.ResourceValue);
                    }
                }
                rxw.Generate();
                rxw.Close();
                break;

            default:
                // write default resource
                ResourceWriter rw = new ResourceWriter(stream);
                foreach (ResourceItem entry in resourceItems)
                {
                    rw.AddResource(entry.Name, entry.ResourceValue);
                }
                rw.Generate();
                rw.Close();
                break;
            }
        }