public static Properties FromFile(string fileName)
        {
            if (fileName == null)
                throw new ArgumentNullException("fileName"); // $NON-NLS-1
            if (string.IsNullOrWhiteSpace(fileName))
                throw Failure.AllWhitespace("fileName");

            Properties p = new Properties();
            p.Load(fileName);
            return p;
        }
        public static Properties FromStreamContext(StreamContext source, Encoding encoding = null)
        {
            if (source == null)
                throw new ArgumentNullException("source");

            Properties p = new Properties();
            p.Load(source.OpenRead(), encoding ?? source.Encoding);
            return p;
        }
 // Implicit construction.
 // N.B. Conforms with Streaming source patterns
 public static Properties FromStream(Stream stream, Encoding encoding = null)
 {
     if (stream == null)
         throw new ArgumentNullException("stream");
     Properties p = new Properties();
     p.Load(stream, encoding);
     return p;
 }