app.config配置{ return "my sql connection"; } } public class MSSqlHelp : SQLHelp { public override string SqlConnection() { return "ms sql connection"; } } public class OracleSqlHelp : SQLHelp { public override string SqlConnection() { return "oracle sql connection"; } }
实现代码<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/> </configSections> <unity xmlns="http://schemas.microsoft.com/practices/2010/unity"> <container> <register type="SqlHelp, New_Code" mapTo="MySqlHelp, New_Code"> <lifetime type="singleton"/> </register> </container> </unity> </configuration>
public void Main() { IUnityContainer container = new UnityContainer(); UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); section.Containers.Default.Configure(container); SQLHelp sqlHelp = container.Resolve<SQLHelp>(); Console.WriteLine(sqlHelp.SqlConnection()); }
运行结果:
my sql connection