internal void WriteToDictionary(Dictionary <string, object> properties)
 {
     properties[nameof(Id)]                      = Id;
     properties[nameof(Description)]             = _description;
     properties[nameof(InterpreterPath)]         = InterpreterPath;
     properties[nameof(PathEnvironmentVariable)] = PathEnvironmentVariable;
     properties[nameof(LibraryPath)]             = LibraryPath;
     properties[nameof(Architecture)]            = Architecture.ToString();
     if (Version != null)
     {
         properties[nameof(Version)] = Version.ToString();
     }
     properties[nameof(SearchPaths)] = SearchPaths.ToArray();
 }
        internal void WriteToDictionary(Dictionary <string, object> properties)
        {
            properties[nameof(Id)]                      = Id;
            properties[nameof(Description)]             = _description;
            properties[nameof(PrefixPath)]              = PrefixPath;
            properties[nameof(InterpreterPath)]         = InterpreterPath;
            properties[nameof(WindowsInterpreterPath)]  = WindowsInterpreterPath;
            properties[nameof(PathEnvironmentVariable)] = PathEnvironmentVariable;
            properties[nameof(Architecture)]            = Architecture.ToString();
            if (Version != null)
            {
                properties[nameof(Version)] = Version.ToString();
            }
            var m = Enum.GetValues(typeof(InterpreterUIMode)).Cast <Enum>()
                    .Where(flag => UIMode.HasFlag(flag))
                    .Select(flag => Enum.GetName(typeof(InterpreterUIMode), flag));

            if (m.Any())
            {
                properties[nameof(UIMode)] = string.Join("|", m);
            }
            properties[nameof(SearchPaths)] = SearchPaths.ToArray();
        }