开发者

How to share one IsolatedStorage for two Windows Forms Applications?

I have two Windows Forms applications and library in one solution.

Library class can create new folders and files in IsolatedStorage and list all files and folders in IsolatedStorage.

First application uses library class to create new folders/files I want the second one to list folders created by first app. How can i make them use t开发者_StackOverflow中文版he same isolated storage?


Use IsolatedStorageFile.GetUserStoreForAssembly to create isolated storage from the library.

Details here

You could use the below type in your library. And the application1 and application2 can write/read to/from the same isolated storage via the below type in your library.

Below:

 public class UserSettingsManager
    {
        private IsolatedStorageFile isolatedStorage;
        private readonly String applicationDirectory;
        private readonly String settingsFilePath;

        public UserSettingsManager()
        {
            this.isolatedStorage = IsolatedStorageFile.GetMachineStoreForAssembly();
            this.applicationDirectory = "UserSettingsDirectory";
            this.settingsFilePath = String.Format("{0}\\settings.xml", this.applicationDirectory);
        }

        public Boolean WriteSettingsData(String content)
        {
            if (this.isolatedStorage == null)
            {
                return false;
            }

            if (! this.isolatedStorage.DirectoryExists(this.applicationDirectory))
            {
                this.isolatedStorage.CreateDirectory(this.applicationDirectory);
            }

            using (IsolatedStorageFileStream fileStream =
                this.isolatedStorage.OpenFile(this.settingsFilePath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
            using (StreamWriter streamWriter = new StreamWriter(fileStream))
            {

                streamWriter.Write(content);
            }

            return true;
        }

        public String GetSettingsData()
        {
            if (this.isolatedStorage == null)
            {
                return String.Empty;
            }

            using(IsolatedStorageFileStream fileStream =
                this.isolatedStorage.OpenFile(this.settingsFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            using(StreamReader streamReader = new StreamReader(fileStream))
            {
                return streamReader.ReadToEnd();
            }
        }
    }

EDIT:

The dll should be a strongly named assembly. Below snapshots show how to add a strong name to the assembly.

How to share one IsolatedStorage for two Windows Forms Applications?

How to share one IsolatedStorage for two Windows Forms Applications?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜