Carpeta para almacenar archivos de datos localmente en la aplicación WPF

Actualmente tengo el siguiente código en mi aplicación WPF que hace exactamente lo que quiero que haga, sin embargo, al publicar esto, no necesariamente podrá acceder a estas ubicaciones de carpetas, ya que no apuntarán al directorio correcto ni existirán las carpetas.

Esperaba que alguien pudiera decirme cuál es la mejor manera de guardar algo en una carpeta local.

Si está dentro de la carpeta de la aplicación o no, tampoco es un problema.

El código que estoy usando actualmente para escribir el archivo:

using (Stream stream = File.Open(@"..\..\Templates\data.bin", FileMode.Create))
            {
                BinaryFormatter bin = new BinaryFormatter();
                bin.Serialize(stream, templateList);
            }

El código que estoy usando actualmente para cargar el archivo:

using (Stream stream = File.Open(@"..\..\Templates\data.bin", FileMode.Open))
        {
            BinaryFormatter bin = new BinaryFormatter();

            templateList = (List<Template>)bin.Deserialize(stream);
        }