private void ParseArguments(string[] args) { Hashtable arguments = new Hashtable(); foreach (string arg in args) { if (arg.IndexOfAny(new char [] { '/', '-' }) != 0) { throw new ApplicationException("Arguments must start with / or -"); } string argname, argvalue; int pos = arg.IndexOf(':'); if (pos >= 0) { argname = arg.Substring(1, pos - 1).ToLower(); argvalue = arg.Substring(pos + 1); } else { argname = arg.Substring(1).ToLower(); argvalue = string.Empty; } if (argname != "s" && argname != "l" && argname != "dbn") { throw new ApplicationException("Unknown argument name " + argname); } arguments.Add(argname.ToLower(), argvalue); } if (arguments["s"] == null && arguments["l"] == null) { throw new ApplicationException("At least one of the following arguments must be specified: /s, /l."); } if (arguments["s"] != null) { _setupDatabase = true; } if (arguments["l"] != null) { switch (arguments["l"].ToString().ToLower()) { case "t": _loadDataAction = LoadDataAction.Test; break; default: throw new ApplicationException("invalid argument parameter \"" + arguments["l"].ToString() + "\" for parameter /l"); } } if (arguments["dbn"] != null) { _databaseName = arguments["dbn"].ToString(); } }
} // LoadData<T> public static TData LoadData <TDbData, TData>(SqlCeDataReader reader, int dataIndex, int dataAltIdex, LoadDataAction <TDbData, TData> load) where TDbData : class where TData : class { var data = LoadData <TDbData>(reader, dataIndex, dataAltIdex); return(load(data, reader)); } // LoadData<T>