# TX Spell .NET 3.0: Loading Dictionaries from Embedded Resources

> TX Spell .NET 3.0 introduces a new OpenOfficeDictionary constructor that accepts dictionary and affix file contents as string arrays. This enables loading dictionaries from embedded assembly resources or shared databases rather than the file system, as shown in a C# code example.

- **Author:** Bjoern Meyer
- **Published:** 2012-09-19
- **Modified:** 2026-07-17
- **Description:** TX Spell .NET 3.0 introduces a new OpenOfficeDictionary constructor that accepts dictionary and affix file contents as string arrays. This enables loading dictionaries from embedded assembly resources or shared databases rather than the file system, as shown in a C# code example.
- **1 min read** (195 words)
- **Tags:**
  - Sample
- **Web URL:** https://www.textcontrol.com/blog/2012/09/19/tx-spell-net-30-loading-dictionaries-from-embedded-resources/
- **LLMs URL:** https://www.textcontrol.com/blog/2012/09/19/tx-spell-net-30-loading-dictionaries-from-embedded-resources/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2012/09/19/tx-spell-net-30-loading-dictionaries-from-embedded-resources/llms-full.txt

---

![TX Spell .NET 3.0](https://s1-www.textcontrol.com/assets/dist/blog/2012/09/19/a/assets/spell_icons.webp "TX Spell .NET 3.0")TX Spell .NET 3.0 provides a new function to load dictionaries from memory. This allows you to add dictionaries to the **DictionaryCollection** from embedded resources or shared databases.

The [OpenOfficeDictionary](https://docs.textcontrol.com/spell/windows-forms/ref.txtextcontrol.proofing.openofficedictionary.class.htm) class got a new constructor accepting a dictionary (.dic) and an affix (.aff) file as a string array. The following code shows how to load a dictionary from embedded resources:

```
List<string> dic = new List<string>();
List<string> aff = new List<string>();

Assembly _assembly;
StreamReader _textStreamReader;

_assembly = Assembly.GetExecutingAssembly();
string line;

_textStreamReader = new StreamReader(
    _assembly.GetManifestResourceStream("tx_spell_open_dict_resource.en_US.dic"));
while ((line = _textStreamReader.ReadLine()) != null)
{
    dic.Add(line);
}

_textStreamReader = new StreamReader(
    _assembly.GetManifestResourceStream("tx_spell_open_dict_resource.en_US.aff"));
while ((line = _textStreamReader.ReadLine()) != null)
{
    aff.Add(line);
}

OpenOfficeDictionary dic_enUS = new OpenOfficeDictionary(
    dic.ToArray(), aff.ToArray(), new CultureInfo("en-US"));
txSpellChecker1.Dictionaries.Add(dic_enUS);
```

This is just another great idea of TX Spell .NET 3.0. Find out more about the new release in the [What's New](https://www.textcontrol.com/product/tx-spell-dotnet-winforms/whats-new/) section.

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [Create a Table of Contents in Windows Forms using C#](https://www.textcontrol.com/blog/2023/01/23/create-toc-in-windows-forms/llms.txt)
- [Official TX Text Control .NET Sample Applications Are Now Hosted on GitHub](https://www.textcontrol.com/blog/2023/01/08/official-tx-text-control-net-sample-applications-are-now-hosted-on-github/llms.txt)
- [Detect Toggle Button Changes Using a MutationObserver](https://www.textcontrol.com/blog/2021/11/11/detect-toggle-button-changes-using-a-mutationobserver/llms.txt)
- [Two Ways to Restart Numbered Lists in TX Text Control](https://www.textcontrol.com/blog/2021/11/03/two-ways-to-restart-numbered-lists/llms.txt)
- [Zoom Tricks: Disabling CTRL + MOUSE WHEEL and More](https://www.textcontrol.com/blog/2020/12/09/zoom-tricks-disabling-ctrl-mouse-wheel-and-more/llms.txt)
- [AutoCorrect Using TX Text Control and TX Spell .NET](https://www.textcontrol.com/blog/2017/08/17/autocorrect-using-tx-text-control-and-tx-spell-net/llms.txt)
- [Creating Conference Badges with Text Control Reporting](https://www.textcontrol.com/blog/2017/02/14/creating-conference-badges-with-text-control-reporting/llms.txt)
- [Using Custom Document Properties to Store Additional Document Information](https://www.textcontrol.com/blog/2017/02/09/using-custom-document-properties-to-store-additional-document-information/llms.txt)
- [Use SubTextParts to Protect Document Parts](https://www.textcontrol.com/blog/2015/12/29/use-subtextparts-to-protect-document-parts/llms.txt)
- [Reporting: Styling the DocumentViewer for ASP.NET](https://www.textcontrol.com/blog/2015/06/14/reporting-styling-the-documentviewer-for-aspnet/llms.txt)
- [Reporting: Merging MS Word Documents with DocVariables](https://www.textcontrol.com/blog/2015/06/10/reporting-merging-ms-word-documents-with-docvariables/llms.txt)
- [TextControl.Web: Determine when a Document Has Been Completely Loaded](https://www.textcontrol.com/blog/2015/06/09/textcontrolweb-determine-when-a-document-has-been-completely-loaded/llms.txt)
- [TextControl.Web: Adding Custom Ribbon Tabs](https://www.textcontrol.com/blog/2015/05/29/textcontrolweb-adding-custom-ribbon-tabs/llms.txt)
- [Building a Touch-enabled Button Bar with Javascript](https://www.textcontrol.com/blog/2015/05/27/building-a-touch-enabled-button-bar-with-javascript/llms.txt)
- [TextControl.Web: Inserting Merge Fields Using Javascript](https://www.textcontrol.com/blog/2015/05/16/textcontrolweb-inserting-merge-fields-using-javascript/llms.txt)
- [MailMerge: Merge Hyperlinks into Merge Fields](https://www.textcontrol.com/blog/2015/05/15/mailmerge-merge-hyperlinks-into-merge-fields/llms.txt)
- [Mail Merge: Suppress Lines with Empty Merge Fields](https://www.textcontrol.com/blog/2014/08/01/mail-merge-suppress-lines-with-empty-merge-fields/llms.txt)
- [Interactive Spelling Suggestions Using TX Spell .NET](https://www.textcontrol.com/blog/2014/07/30/interactive-spelling-suggestions-using-tx-spell-net/llms.txt)
- [Alternate Row Colors Using NEXT Fields](https://www.textcontrol.com/blog/2013/12/30/alternate-row-colors-using-next-fields/llms.txt)
- [Loading Dictionaries Dynamically in TX Spell .NET](https://www.textcontrol.com/blog/2013/12/20/loading-dictionaries-dynamically-in-tx-spell-net/llms.txt)
- [Restart the Page Numbering Fields Per Section](https://www.textcontrol.com/blog/2013/11/08/restart-the-page-numbering-fields-per-section/llms.txt)
- [TX Barcode .NET: Test the Barcode Engine Live!](https://www.textcontrol.com/blog/2013/07/10/tx-barcode-net-test-the-barcode-engine-live/llms.txt)
- [SD Times .NET Component Buyers Guide 2013: Simplify Report Creation](https://www.textcontrol.com/blog/2013/06/06/sd-times-net-component-buyers-guide-2013-simplify-report-creation/llms.txt)
- [Inserting MS Word Compatible Page Number Fields](https://www.textcontrol.com/blog/2013/05/30/inserting-ms-word-compatible-page-number-fields/llms.txt)
- [MailMerge: Creating Shipping Labels Using TX Text Control](https://www.textcontrol.com/blog/2012/11/23/mailmerge-creating-shipping-labels-using-tx-text-control/llms.txt)
