public static T Generate <T>() where T : PipelineConfiguration, new() { var self = new T() { SourceConnection = new ConnectionInfo() { CollectionUrl = "http://localhost:8080/tfs/DefaultCollection", ProjectName = "yourSourceProject", User = "******", Password = "******" }, DestinationConnection = new ConnectionInfo() { CollectionUrl = "http://localhost:8080/tfs/DefaultCollection", ProjectName = "yourTargetProject", User = "******", Password = "******" }, PipelineStages = new List <string>() { "step1", "step2" }, StopPipelineOnFirstError = true, TestOnly = true, Logging = LoggingLevel.Diagnostic, ChangeLogFile = "changes.csv", LogFile = "log.txt", // let them say AreasAndIterationsStage = AreasAndIterationsStageConfiguration.Generate(), GlobalListsStage = GlobalListsStageConfiguration.Generate(), WorkItemsStage = WorkItemsStageConfiguration.Generate() }; return(self); }