Esempio n. 1
0
        public bool EmitMessageTables()
        {
            if (combinedResGenManifest == null)
            {
                diags.ReportError("Compilation has no manifests for resource generation.");
                return(false);
            }

            var trap = diags.TrapError();

            foreach (var resourceSet in combinedResGenManifest.Resources)
            {
                string fileName = AddCultureName(opts.MessageTableFile, resourceSet.Culture);
                using FileStream output = FileUtilities.TryCreateFile(diags, fileName);
                if (output == null)
                {
                    continue;
                }

                using var writer = new MessageTableWriter(output);
                writer.Write(resourceSet.Strings.Select(CreateMessage), diags);
            }

            return(!trap.ErrorOccurred);
        }
        public void Write(string inputResourceName, Type resourceAnchor, byte[] expectedMsgTable)
        {
            var manifest = TestHelper.LoadManifest(resourceAnchor, inputResourceName);

            Assert.Single(manifest.Resources);

            using var tempStream = new MemoryStream();
            using (var writer = new MessageTableWriter(tempStream))
                writer.Write(manifest.Resources[0].Strings.Select(CreateMessage), diags);

            SequenceAssert.SequenceEqual(expectedMsgTable, tempStream.ReadAllBytes());
        }