1 //------------------------------------------------------------------------------ 2 // <copyright file="SqlClientFactory.cs" company="Microsoft"> 3 // Copyright (c) Microsoft Corporation. All rights reserved. 4 // </copyright> 5 // <owner current="true" primary="true">Microsoft</owner> 6 // <owner current="true" primary="false">Microsoft</owner> 7 //------------------------------------------------------------------------------ 8 9 using System; 10 using System.Data; 11 using System.Data.Common; 12 using System.Data.Sql; 13 using System.Security; 14 using System.Security.Permissions; 15 16 namespace System.Data.SqlClient { 17 18 public sealed class SqlClientFactory : DbProviderFactory, IServiceProvider { 19 20 public static readonly SqlClientFactory Instance = new SqlClientFactory(); 21 SqlClientFactory()22 private SqlClientFactory() { 23 } 24 25 public override bool CanCreateDataSourceEnumerator { 26 get { 27 return true; 28 } 29 } 30 CreateCommand()31 public override DbCommand CreateCommand() { 32 return new SqlCommand(); 33 } 34 CreateCommandBuilder()35 public override DbCommandBuilder CreateCommandBuilder() { 36 return new SqlCommandBuilder(); 37 } 38 CreateConnection()39 public override DbConnection CreateConnection() { 40 return new SqlConnection(); 41 } 42 CreateConnectionStringBuilder()43 public override DbConnectionStringBuilder CreateConnectionStringBuilder() { 44 return new SqlConnectionStringBuilder(); 45 } 46 CreateDataAdapter()47 public override DbDataAdapter CreateDataAdapter() { 48 return new SqlDataAdapter(); 49 } 50 CreateParameter()51 public override DbParameter CreateParameter() { 52 return new SqlParameter(); 53 } 54 CreatePermission(PermissionState state)55 public override CodeAccessPermission CreatePermission(PermissionState state) { 56 return new SqlClientPermission(state); 57 } 58 CreateDataSourceEnumerator()59 public override DbDataSourceEnumerator CreateDataSourceEnumerator() { 60 return SqlDataSourceEnumerator.Instance; 61 } 62 63 /// <summary> 64 /// Extension mechanism for additional services; currently the only service 65 /// supported is the DbProviderServices 66 /// </summary> 67 /// <returns>requested service provider or null.</returns> IServiceProvider.GetService(Type serviceType)68 object IServiceProvider.GetService(Type serviceType) { 69 object result = null; 70 if (serviceType == GreenMethods.SystemDataCommonDbProviderServices_Type) { 71 result = GreenMethods.SystemDataSqlClientSqlProviderServices_Instance(); 72 } 73 return result; 74 } 75 } 76 } 77 78