本文整理汇总了C#中System.Arguments.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# Arguments.GetType方法的具体用法?C# Arguments.GetType怎么用?C# Arguments.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Arguments
的用法示例。
在下文中一共展示了Arguments.GetType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
public override void Run(string[] args, MessageBoxErrorReporter reporter)
{
var parsedArguments = new Arguments();
reporter.CommandUsage = Parser.ArgumentsUsage(parsedArguments.GetType());
if (Parser.ParseArguments(args, parsedArguments, reporter.Handler))
{
var filterFile = FilterFile.FromFile(parsedArguments.FilterFile);
// Save the filtered solution. We also add a link to the original solution file in the filtered solution.
// If we have to checkout the original solution file later on, its easier with that link.
var filteredSolution = filterFile.Apply();
// Add OriginalSolutionFile to the filter solution (and a warnings file if needed)
filteredSolution.Projects.Add(CreateOriginalSolutionProject(filterFile.SourceSolution));
filteredSolution.Save();
if (filterFile.CopyReSharperFiles)
{
var resharperGlobalFileSettingsSource = filterFile.SourceSolutionFullPath + ".DotSettings";
if (File.Exists(resharperGlobalFileSettingsSource))
{
File.Copy(resharperGlobalFileSettingsSource, filteredSolution.SolutionFullPath + ".DotSettings", true);
}
var resharperUserFileSettingsSource = filterFile.SourceSolutionFullPath + ".DotSettings.user";
var resharperUserFileSettingsDestination = filteredSolution.SolutionFullPath + ".DotSettings.user";
if (File.Exists(resharperUserFileSettingsSource) && !File.Exists(resharperUserFileSettingsDestination))
{
File.Copy(resharperUserFileSettingsSource, resharperUserFileSettingsDestination);
}
}
if (!parsedArguments.CreateOnly)
{
filterFile.StartFilteredSolutionWatcher(
filteredSolution,
delegate(NodeDifference difference)
{
using (var fix = new TopMostFormFix())
{
using (var form = new UpdateOriginalSolutionForm(difference, filterFile.SourceSolutionFullPath))
{
return (form.ShowDialog() == DialogResult.Yes);
}
}
});
var startTime = DateTime.Now;
var process = Process.Start(filteredSolution.SolutionFullPath);
if (parsedArguments.Wait || filterFile.WatchForChangesOnFilteredSolution)
{
process.WaitForExit();
// If the process exited "too fast", we wait on the processes that were spawned by the process
// we started. This allow us to handle the case where the '.sln' is associated to an application like
// "VSLauncher.exe". That type of application only live for a short period of time because it's job
// is to analyse the sln file, launch the right version of "devenv.exe" (i.e. VS2002, VS2005, VS2008)
// and then exit.
// This "trick" should not be needed with others IDE like SharpDevelop.
if (DateTime.Now - startTime < TimeSpan.FromMinutes(1))
{
foreach (var processSpawned in ProcessEx.GetChildsOfProcess(process))
{
processSpawned.WaitForExit();
}
}
}
filterFile.StopFilteredSolutionWatcher();
}
}
}
示例2: Main
static void Main(string[] args)
{
//args = new string[] { "CompareSolutions", @"C:\Dev\VSSolutionMerger.root\VSSolutionMerger\SLNTools.exe\All Projects (Lors du Branch).sln", @"C:\Dev\VSSolutionMerger.root\VSSolutionMerger\SLNTools.exe\All Projects (Latest Branche WinFixFrs).sln" };
//args = new string[] { "MergeSolutions", @"C:\Dev\VSSolutionMerger.root\VSSolutionMerger\SLNTools.exe\All Projects (Lors du Branch).sln", @"C:\Dev\VSSolutionMerger.root\VSSolutionMerger\SLNTools.exe\All Projects (Latest Branche WinFixFrs).sln", @"C:\Dev\VSSolutionMerger.root\VSSolutionMerger\SLNTools.exe\All Projects (Latest Main).sln", @"C:\Dev\VSSolutionMerger.root\VSSolutionMerger\SLNTools.exe\Results.sln" };
//args = new string[] { "CreateFilterFileFromSolution", @"C:\DevCodePlex\SLNTools\Main\SLNTools.sln" };
//args = new string[] { "OpenFilterFile", @"C:\DevCodePlex\SLNTools\Main\Test.slnfilter" };
//args = new string[] { "/?" };
//args = new string[] { "CreateFilterFileFromSolution", @"E:\SLNTools\SLNTools\Main\SLNTools.sln" };
//args = new string[] { "MergeSolutions" };
try
{
string[] commandName;
string[] commandArguments;
if (args.Length > 1)
{
commandName = new string[1];
Array.ConstrainedCopy(args, 0, commandName, 0, 1);
commandArguments = new string[args.Length - 1];
Array.ConstrainedCopy(args, 1, commandArguments, 0, commandArguments.Length);
}
else
{
commandName = args;
commandArguments = new string[0];
}
var parsedArguments = new Arguments();
var reporter = new MessageBoxErrorReporter
{
CommandUsage = Parser.ArgumentsUsage(parsedArguments.GetType())
};
if (Parser.ParseArguments(commandName, parsedArguments, reporter.Handler))
{
Command command;
switch (parsedArguments.Command)
{
case CommandList.CompareSolutions:
command = new CompareSolutionsCommand();
break;
case CommandList.MergeSolutions:
command = new MergeSolutionsCommand();
break;
case CommandList.CreateFilterFileFromSolution:
command = new CreateFilterFileFromSolutionCommand();
break;
case CommandList.OpenFilterFile:
command = new OpenFilterFileCommand();
break;
case CommandList.EditFilterFile:
command = new EditFilterFileCommand();
break;
default:
command = null;
reporter.Handler("Invalid command name.");
break;
}
if (command != null)
{
reporter.CommandName = parsedArguments.Command.ToString();
command.Run(commandArguments, reporter);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}