private string[] GetReferenceArray(string fileName) { string resourceName = Assembly.GetManifestResourceNames() .SingleOrDefault(assemblyName => assemblyName.Contains("Reference") && assemblyName.EndsWith(fileName)); if (string.IsNullOrEmpty(resourceName)) { throw new Exception($"Could not find resource with file name {fileName}."); } string line = ""; using (Stream stream = Assembly.GetManifestResourceStream(resourceName)) using (StreamReader reader = new StreamReader(stream)) { // only need first line line = reader.ReadLine(); } if (string.IsNullOrEmpty(line)) { throw new Exception($"Reference resource at {resourceName} has an empty first line."); } return(line.Split(',')); }
/// <summary> /// Loads serialized <see cref="HiddenMarkovModel"/> from resource and returns it. /// </summary> /// <returns></returns> /// <exception cref="Exception">If resource name is not found.</exception> /// <exception cref="Exception">If resource is not found.</exception> public IHiddenMarkovModelWrapper LoadHMM() { string resourceName = Assembly.GetManifestResourceNames() .SingleOrDefault(name => name.EndsWith(ModelFileName)); if (string.IsNullOrEmpty(resourceName)) { throw new Exception($"Could not find resource with name {ModelFileName}."); } HiddenMarkovModel model = null; using (Stream stream = Assembly.GetManifestResourceStream(resourceName)) { model = Serializer.Load <HiddenMarkovModel>(stream); } if (model == null) { throw new Exception($"Model resource at {resourceName} not found."); } return(new HiddenMarkovModelWrapper(model)); }