Update Reference Sources to .NET Framework 4.6.1
[mono.git] / mcs / class / referencesource / System.Data / System / Data / SqlClient / SqlClientFactory.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="SqlClientFactory.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">[....]</owner>
6 // <owner current="true" primary="false">[....]</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
22         private SqlClientFactory() {
23         }
24
25         public override bool CanCreateDataSourceEnumerator {
26             get { 
27                 return true;
28             }
29         }
30
31         public override DbCommand CreateCommand() {
32             return new SqlCommand();
33         }
34
35         public override DbCommandBuilder CreateCommandBuilder() {
36             return new SqlCommandBuilder();
37         }
38
39         public override DbConnection CreateConnection() {
40             return new SqlConnection();
41         }
42
43         public override DbConnectionStringBuilder CreateConnectionStringBuilder() {
44             return new SqlConnectionStringBuilder();
45         }
46
47         public override DbDataAdapter CreateDataAdapter() {
48             return new SqlDataAdapter();
49         }
50
51         public override DbParameter CreateParameter() {
52             return new SqlParameter();
53         }
54
55         public override CodeAccessPermission CreatePermission(PermissionState state) {
56             return new SqlClientPermission(state);
57         }
58
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>
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