The MSDN states:
- None No isolated storage usage.
- User Isolated storage scoped by user identity.
- Domain Isolated storage scoped to the application domain identity.
- Assembly Isolated storage scoped to the identity of the assembly.
- Roaming The isolated store can be placed in a location on the file system that might roam (if roaming user data is enabled on the underlying operating system).
- Machine Isolated storage scoped to the machine.
- Application Isolated storage scoped to the application.
I have some trouble understanding what those levels mean in detail. This is what I can make of it (developing a Windows Form application):
- User Storage location would change when a different Windows user starts the application
- Domain What exactly is the domain domain identity and for what use case would this option be relevant?
- Assembly How exactly does the assembly identify itself? The storage location seems to change with changing assembly version for example.
- Roaming This would probably tell .NET to use the roaming data folder for the current user (if available). However, is probably requires some additional flags since it somehow has to know how to identify the application folder wise.
- Machine Would the use of this be to share data between applications storing it in a "general" machine scope isolated storage?
- Application How is this different from "Assembly"?
What would be the proper combination to store data specific to a Windows Forms application but assembly/file version independent to preserve data between updates?
A general explanation of all flags would be nice.