There's nothing wrong with it, but what I was referring to in the previous post could result in your settings being loaded more than once. Now, this probably wouldn't be a problem, but locking your resources will gaurantee that it wouldn't. I'm not trying to down-play your approach, only present different ideas. It's you're implementation - do what you want. :) Typically in a singleton you provide static methods and properties and hide instance details from other classes. For instance, you could also have your Save method as static and it gets the private Instance property (or uses your GetInstance method) and saves the data. For the caller then, it's as simple as doing MySettings.Save. Again, just some things to think about. Your approach would work fine in most cases (only may become a problem with multiple AppDomains in a single process, which may not apply).
Microsoft MVP, Visual C# My Articles