SL2JS.SilverlightAssemblyTranslator.DumpResourcesFromAssemblyToDirectory C# (CSharp) Method

DumpResourcesFromAssemblyToDirectory() public method

public DumpResourcesFromAssemblyToDirectory ( string filename, string directory ) : void
filename string
directory string
return void
        public void DumpResourcesFromAssemblyToDirectory(string filename, string directory)
        {
            if (!Directory.Exists(directory))
                Directory.CreateDirectory(directory);

            var assembly = AssemblyDefinition.ReadAssembly(filename, GetReaderParameters(false));
            if(!assembly.MainModule.HasResources) return;
            foreach(var resource in assembly.MainModule.Resources)
            {
                if (resource.ResourceType != ResourceType.Embedded) continue;
                var data = ((EmbeddedResource) resource).GetResourceData();
                File.WriteAllBytes(Path.Combine(directory, resource.Name), data);

            }
        }

Usage Example

        private void ProcessResources(SilverlightAssemblyTranslator translator)
        {
            var resourceFolderName = Path.GetFileNameWithoutExtension(configuration.Filename);
            var resourceFolder = Path.Combine(configuration.OutputDirectory, resourceFolderName);
            translator.DumpResourcesFromAssemblyToDirectory(configuration.Filename, resourceFolder);

            if (!Directory.Exists(resourceFolder)) return;

            foreach (var file in Directory.GetFiles(resourceFolder, "*.resources"))
            {
                resourceFileTranslator.Translate(file, resourceFolder);
            }

            ClumpJsonFromDirectoryIntoFile(resourceFolder);
        }