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()); }