本文整理汇总了C#中IServiceProvider.RegisterService方法的典型用法代码示例。如果您正苦于以下问题:C# IServiceProvider.RegisterService方法的具体用法?C# IServiceProvider.RegisterService怎么用?C# IServiceProvider.RegisterService使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IServiceProvider
的用法示例。
在下文中一共展示了IServiceProvider.RegisterService方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static int Main(string[] args)
{
System.Console.WriteLine(Resources.CopyrightInformation,
Assembly.GetExecutingAssembly().GetName().Version.ToString(4),
ApplicationInfo.Milestone);
if(args.Length == 0 || (args.Length == 1 && args[0] == "/?"))
{
System.Console.WriteLine();
System.Console.WriteLine(Resources.UsageInformation);
return 1;
} // if
serviceProvider = new ServiceProvider();
serviceProvider.RegisterService(BuildDbPlatformRegistry());
serviceProvider.RegisterService<IMigrationService>(delegate(IServiceProvider sp)
{
MigrationService migrationService = new MigrationService(
sp.GetService<IDbPlatform>(),
sp.GetService<IMigrationVersionInfoManager>(),
sp.GetService<IMigrationScriptExecutive>(),
sp.GetService<INativeSqlResourceProvider>());
migrationService.Migrating += MigrationServiceMigrating;
migrationService.Migrated += MigrationServiceMigrated;
return migrationService;
});
serviceProvider.RegisterService<IMigrationVersionInfoManager>(delegate(IServiceProvider sp)
{
return new DbMigrationVersionInfoManager(
sp.GetService<IDbPlatform>(),
sp.GetService<IDbCommandExecutionStrategy>(),
"SchemaInfo");
});
serviceProvider.RegisterService<IMigrationScriptExecutive>(delegate(IServiceProvider sp)
{
return new DbMigrationScriptExecutive(
sp.GetService<IDbCommandExecutionStrategy>());
});
serviceProvider.RegisterService(new DeploymentService());
serviceProvider.RegisterService(new ReverseEngineeringService());
serviceProvider.RegisterService(new UtcDateTimeTimestampProvider());
serviceProvider.RegisterService(new FileSystemNativeSqlResourceProvider(Directory.GetCurrentDirectory()));
//
// Prepare Migration Command Registry...
MigrationCommandRegistry migrationCommandRegistry = new MigrationCommandRegistry();
migrationCommandRegistry.RegisterAssembly(typeof(Program).Assembly);
try
{
//
// Parse parameters
MigrationParametersParser parametersParser = new MigrationParametersParser();
parameters = parametersParser.ParseMigrationParameters(args);
//
// If we have an output file name specified, use special IDbCommandExecutionStrategy
if(!string.IsNullOrEmpty(parameters.OutputFileName))
serviceProvider.RegisterService(new FileDbCommandExecutionStrategy(parameters.OutputFileName));
else
serviceProvider.RegisterService(new DbCommandExecutionStrategy());
//
// ...and execute whatever command we need
IMigrationCommand migrationCommand = migrationCommandRegistry.ResolveCommand(parameters.Command);
migrationCommand.ServiceProvider = serviceProvider;
migrationCommand.Execute(parameters);
} // try
catch(MdlParserException e)
{
using(new ConsoleStylingScope(ConsoleColor.Red))
System.Console.WriteLine(System.Environment.NewLine + "Compilation Exception: {0}", e.Message);
return 2;
} // catch
catch(MdlCompilerException e)
{
using(new ConsoleStylingScope(ConsoleColor.Red))
System.Console.WriteLine(System.Environment.NewLine + "Compilation Exception: {0} ({1})", e.Message,
e.Location);
return 3;
} // catch
catch(MigrationException e)
{
using(new ConsoleStylingScope(ConsoleColor.Red))
System.Console.WriteLine(System.Environment.NewLine + "Migration Exception: {0} ({1})", e.Message, e.SqlStatement);
return 4;
} // catch
catch(DbPlatformException e)
{
//.........这里部分代码省略.........