Imported Upstream version 4.4.2.4
Former-commit-id: 92904c9c5915c37244316e42ba99e7b934ed7ee2
This commit is contained in:
parent
589d484eee
commit
0b4a830db1
@ -1 +1 @@
|
|||||||
2d6bcb46584f03dd01cd55dd2a04c15b4a6a5fec
|
047d2af192055dda39f35c668102b5948e87c44b
|
@ -1 +1 @@
|
|||||||
b0b5573ff57c299411be9915864eaa21d4933c2d
|
2517961607b5dcd9778743fe589d6ff7f167a776
|
@ -59,7 +59,7 @@ namespace System.Security.Cryptography {
|
|||||||
public const string Sha512 = "SHA512"; // BCRYPT_SHA512_ALGORITHM
|
public const string Sha512 = "SHA512"; // BCRYPT_SHA512_ALGORITHM
|
||||||
internal const string Rsa = "RSA"; // BCRYPT_RSA_ALGORITHM
|
internal const string Rsa = "RSA"; // BCRYPT_RSA_ALGORITHM
|
||||||
}
|
}
|
||||||
|
#if !MONO
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Well known key blob tyes
|
/// Well known key blob tyes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -454,5 +454,6 @@ namespace System.Security.Cryptography {
|
|||||||
}
|
}
|
||||||
return keyBlob;
|
return keyBlob;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,10 @@ namespace System.Security.Cryptography {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
|
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
|
||||||
public sealed class CngKey : IDisposable {
|
public sealed class CngKey : IDisposable {
|
||||||
|
#if MONO
|
||||||
|
public void Dispose() {
|
||||||
|
}
|
||||||
|
#else
|
||||||
private SafeNCryptKeyHandle m_keyHandle;
|
private SafeNCryptKeyHandle m_keyHandle;
|
||||||
private SafeNCryptProviderHandle m_kspHandle;
|
private SafeNCryptProviderHandle m_kspHandle;
|
||||||
|
|
||||||
@ -816,5 +820,6 @@ namespace System.Security.Cryptography {
|
|||||||
Contract.Assert(m_keyHandle != null);
|
Contract.Assert(m_keyHandle != null);
|
||||||
NCryptNative.SetProperty(m_keyHandle, property.Name, property.Value, property.Options);
|
NCryptNative.SetProperty(m_keyHandle, property.Name, property.Value, property.Options);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,15 @@ namespace System.Security.Cryptography {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
|
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
|
||||||
public sealed class ECDsaCng : ECDsa {
|
public sealed class ECDsaCng : ECDsa {
|
||||||
|
#if MONO
|
||||||
|
public override byte[] SignHash(byte[] hash) {
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool VerifyHash(byte[] hash, byte[] signature) {
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
#else
|
||||||
private static KeySizes[] s_legalKeySizes = new KeySizes[] { new KeySizes(256, 384, 128), new KeySizes(521, 521, 0) };
|
private static KeySizes[] s_legalKeySizes = new KeySizes[] { new KeySizes(256, 384, 128), new KeySizes(521, 521, 0) };
|
||||||
|
|
||||||
private CngKey m_key;
|
private CngKey m_key;
|
||||||
@ -407,5 +416,6 @@ namespace System.Security.Cryptography {
|
|||||||
return hasher.HashFinal();
|
return hasher.HashFinal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,9 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
#if !MONO
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
#endif
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.ConstrainedExecution;
|
using System.Runtime.ConstrainedExecution;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
@ -100,7 +102,7 @@ namespace System.Security.Cryptography {
|
|||||||
ProtectKey = 0x00000001, // NCRYPT_UI_PROTECT_KEY_FLAG
|
ProtectKey = 0x00000001, // NCRYPT_UI_PROTECT_KEY_FLAG
|
||||||
ForceHighProtection = 0x00000002 // NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG
|
ForceHighProtection = 0x00000002 // NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG
|
||||||
}
|
}
|
||||||
|
#if !MONO
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Native interop with CNG's NCrypt layer. Native definitions are in ncrypt.h
|
/// Native interop with CNG's NCrypt layer. Native definitions are in ncrypt.h
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -1741,4 +1743,5 @@ namespace System.Security.Cryptography {
|
|||||||
return error == ErrorCode.Success;
|
return error == ErrorCode.Success;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,18 @@ namespace System.Security.Cryptography
|
|||||||
{
|
{
|
||||||
public sealed class RSACng : RSA
|
public sealed class RSACng : RSA
|
||||||
{
|
{
|
||||||
|
#if MONO
|
||||||
|
public override RSAParameters ExportParameters(bool includePrivateParameters)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ImportParameters(RSAParameters parameters)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
// See https://msdn.microsoft.com/en-us/library/windows/desktop/bb931354(v=vs.85).aspx
|
// See https://msdn.microsoft.com/en-us/library/windows/desktop/bb931354(v=vs.85).aspx
|
||||||
private static KeySizes[] s_legalKeySizes = new KeySizes[] { new KeySizes(512, 16384, 64) };
|
private static KeySizes[] s_legalKeySizes = new KeySizes[] { new KeySizes(512, 16384, 64) };
|
||||||
|
|
||||||
@ -504,5 +516,6 @@ namespace System.Security.Cryptography
|
|||||||
throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
|
throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,10 +42,11 @@ namespace Microsoft.Win32.SafeHandles {
|
|||||||
SetHandle(existingHandle);
|
SetHandle(existingHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !MONO
|
||||||
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
|
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
|
||||||
[ResourceExposure(ResourceScope.Machine)]
|
[ResourceExposure(ResourceScope.Machine)]
|
||||||
internal static extern SafeProcessHandle OpenProcess(int access, bool inherit, int processId);
|
internal static extern SafeProcessHandle OpenProcess(int access, bool inherit, int processId);
|
||||||
|
#endif
|
||||||
|
|
||||||
internal void InitialSetHandle(IntPtr h){
|
internal void InitialSetHandle(IntPtr h){
|
||||||
Debug.Assert(base.IsInvalid, "Safe handle should only be set once");
|
Debug.Assert(base.IsInvalid, "Safe handle should only be set once");
|
||||||
@ -54,7 +55,11 @@ namespace Microsoft.Win32.SafeHandles {
|
|||||||
|
|
||||||
override protected bool ReleaseHandle()
|
override protected bool ReleaseHandle()
|
||||||
{
|
{
|
||||||
|
#if !MONO
|
||||||
return SafeNativeMethods.CloseHandle(handle);
|
return SafeNativeMethods.CloseHandle(handle);
|
||||||
|
#else
|
||||||
|
return NativeMethods.CloseProcess (handle);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ static class Consts
|
|||||||
// Use these assembly version constants to make code more maintainable.
|
// Use these assembly version constants to make code more maintainable.
|
||||||
//
|
//
|
||||||
|
|
||||||
public const string MonoVersion = "4.4.1.0";
|
public const string MonoVersion = "4.4.2.0";
|
||||||
public const string MonoCompany = "Mono development team";
|
public const string MonoCompany = "Mono development team";
|
||||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||||
public const string MonoCopyright = "(c) Various Mono authors";
|
public const string MonoCopyright = "(c) Various Mono authors";
|
||||||
|
@ -28,7 +28,7 @@ include $(MCS_BUILD_DIR)/rules.make
|
|||||||
|
|
||||||
dist-local: dist-default
|
dist-local: dist-default
|
||||||
|
|
||||||
DIST_SUBDIRS = $(net_4_x_PARALLEL_SUBDIRS)
|
DIST_SUBDIRS = $(net_4_x_PARALLEL_SUBDIRS) $(net_4_x_SUBDIRS) $(mobile_only_SUBDIRS)
|
||||||
DISTFILES=subdirs.make
|
DISTFILES=subdirs.make
|
||||||
|
|
||||||
doc-update-local:
|
doc-update-local:
|
||||||
@ -37,4 +37,7 @@ doc-update-local:
|
|||||||
doc-update-recursive:
|
doc-update-recursive:
|
||||||
@echo "do not recurse the Facades folder"
|
@echo "do not recurse the Facades folder"
|
||||||
|
|
||||||
System System.Core System.ComponentModel.DataAnnotations System.Numerics System.Runtime.Serialization System.XML System.ComponentModel.Composition System.ServiceModel System.Xml.Linq:
|
System System.Core System.ComponentModel.DataAnnotations System.Numerics System.Runtime.Serialization System.XML \
|
||||||
|
System.ComponentModel.Composition System.ServiceModel System.Xml.Linq System.Data System.IO.Compression.FileSystem \
|
||||||
|
System.ServiceProcess System.Security System.Net.Http.WebRequest System.Net.Http:
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
TypeForwarders.cs
|
TypeForwarders.cs
|
||||||
AssemblyInfo.cs
|
AssemblyInfo.cs
|
||||||
|
|
||||||
|
../../../build/common/MonoTODOAttribute.cs
|
||||||
|
RegistryAclExtensions.cs
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
//
|
||||||
|
// RegistryAclExtensions.cs
|
||||||
|
//
|
||||||
|
// Author:
|
||||||
|
// Alexander Köplinger (alexander.koeplinger@xamarin.com)
|
||||||
|
//
|
||||||
|
// (C) 2016 Xamarin, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Security;
|
||||||
|
using System.Security.AccessControl;
|
||||||
|
|
||||||
|
namespace Microsoft.Win32
|
||||||
|
{
|
||||||
|
public static class RegistryAclExtensions
|
||||||
|
{
|
||||||
|
[MonoTODO]
|
||||||
|
public static RegistrySecurity GetAccessControl (this RegistryKey key)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException ();
|
||||||
|
}
|
||||||
|
|
||||||
|
[MonoTODO]
|
||||||
|
public static RegistrySecurity GetAccessControl (this RegistryKey key, AccessControlSections includeSections)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException ();
|
||||||
|
}
|
||||||
|
|
||||||
|
[MonoTODO]
|
||||||
|
public static void SetAccessControl (this RegistryKey key, RegistrySecurity registrySecurity)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -23,4 +23,3 @@
|
|||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryAccessRule))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryAccessRule))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryAuditRule))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistryAuditRule))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistrySecurity))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.Security.AccessControl.RegistrySecurity))]
|
||||||
//Missing: [assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryAclExtensions))]
|
|
||||||
|
@ -20,13 +20,11 @@
|
|||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#if !MOBILE
|
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.Registry))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.Registry))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryHive))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryHive))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryKey))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryKey))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryValueKind))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryValueKind))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryValueOptions))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryValueOptions))]
|
||||||
#endif
|
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryOptions))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryOptions))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryView))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.RegistryView))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeRegistryHandle))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(Microsoft.Win32.SafeHandles.SafeRegistryHandle))]
|
||||||
|
@ -20,9 +20,27 @@
|
|||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BrowsableAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CategoryAttribute))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ComponentCollection))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ComponentCollection))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DescriptionAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DesignOnlyAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DesignerCategoryAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DesignerSerializationVisibility))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DesignerSerializationVisibilityAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DisplayNameAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.EventHandlerList))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IComponent))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IComponent))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IContainer))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IContainer))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ISite))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ISite))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ImmutableObjectAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.InitializationEventAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.LocalizableAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.MergablePropertyAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.NotifyParentPropertyAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ParenthesizePropertyNameAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ReadOnlyAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.RefreshProperties))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.RefreshPropertiesAttribute))]
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,34 +21,61 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ArrayConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ArrayConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.AttributeCollection))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.AttributeProviderAttribute))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BaseNumberConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BaseNumberConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BooleanConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.BooleanConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ByteConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ByteConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CancelEventHandler))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CharConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CharConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CollectionChangeAction))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CollectionChangeEventArgs))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CollectionChangeEventHandler))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CollectionConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CollectionConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.CustomTypeDescriptor))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DateTimeConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DateTimeConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DateTimeOffsetConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DateTimeOffsetConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DecimalConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DecimalConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DefaultEventAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DefaultPropertyAttribute))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DoubleConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.DoubleConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.EnumConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.EnumConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.EventDescriptor))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.EventDescriptorCollection))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ExtenderProvidedPropertyAttribute))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.GuidConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.GuidConverter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.HandledEventArgs))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.HandledEventHandler))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ICustomTypeDescriptor))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IExtenderProvider))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.IListSource))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ITypeDescriptorContext))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ITypedList))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int16Converter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int16Converter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int32Converter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int32Converter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int64Converter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.Int64Converter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ITypeDescriptorContext))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.InvalidAsynchronousStateException))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.MemberDescriptor))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.MultilineStringConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.MultilineStringConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.NullableConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.NullableConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyDescriptor))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyDescriptor))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.PropertyDescriptorCollection))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.ProvidePropertyAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.RefreshEventArgs))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.RefreshEventHandler))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.SByteConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.SByteConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.SingleConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.SingleConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.StringConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.StringConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TimeSpanConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TimeSpanConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeConverterAttribute))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeConverterAttribute))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeDescriptionProvider))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeDescriptionProviderAttribute))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeDescriptor))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeDescriptor))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeListConverter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.TypeListConverter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt16Converter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt16Converter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt32Converter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt32Converter))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt64Converter))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ComponentModel.UInt64Converter))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.UriTypeConverter))]
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleCancelEventArgs))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleCancelEventArgs))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleCancelEventHandler))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleCancelEventHandler))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleColor))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleColor))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleKey))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleKeyInfo))]
|
||||||
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleModifiers))]
|
||||||
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleSpecialKey))]
|
[assembly: System.Runtime.CompilerServices.TypeForwardedToAttribute(typeof(System.ConsoleSpecialKey))]
|
||||||
|
|
||||||
|
|
||||||
|
64
mcs/class/Facades/System.Data.Common/DbColumn.cs
Normal file
64
mcs/class/Facades/System.Data.Common/DbColumn.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
//
|
||||||
|
// DbColumn.cs
|
||||||
|
//
|
||||||
|
// Authors:
|
||||||
|
// Marek Safar <marek.safar@gmail.com>
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 Xamarin Inc (http://www.xamarin.com)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace System.Data.Common
|
||||||
|
{
|
||||||
|
public abstract class DbColumn
|
||||||
|
{
|
||||||
|
public bool? AllowDBNull { get; protected set; }
|
||||||
|
public string BaseCatalogName { get; protected set; }
|
||||||
|
public string BaseColumnName { get; protected set; }
|
||||||
|
public string BaseSchemaName { get; protected set; }
|
||||||
|
public string BaseServerName { get; protected set; }
|
||||||
|
public string BaseTableName { get; protected set; }
|
||||||
|
public string ColumnName { get; protected set; }
|
||||||
|
public int? ColumnOrdinal { get; protected set; }
|
||||||
|
public int? ColumnSize { get; protected set; }
|
||||||
|
public bool? IsAliased { get; protected set; }
|
||||||
|
public bool? IsAutoIncrement { get; protected set; }
|
||||||
|
public bool? IsExpression { get; protected set; }
|
||||||
|
public bool? IsHidden { get; protected set; }
|
||||||
|
public bool? IsIdentity { get; protected set; }
|
||||||
|
public bool? IsKey { get; protected set; }
|
||||||
|
public bool? IsLong { get; protected set; }
|
||||||
|
public bool? IsReadOnly { get; protected set; }
|
||||||
|
public bool? IsUnique { get; protected set; }
|
||||||
|
public int? NumericPrecision { get; protected set; }
|
||||||
|
public int? NumericScale { get; protected set; }
|
||||||
|
public string UdtAssemblyQualifiedName { get; protected set; }
|
||||||
|
public Type DataType { get; protected set; }
|
||||||
|
public string DataTypeName { get; protected set; }
|
||||||
|
public virtual object this[string property] {
|
||||||
|
get {
|
||||||
|
throw new NotImplementedException ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,85 @@
|
|||||||
|
// Licensed to the .NET Foundation under one or more agreements.
|
||||||
|
// The .NET Foundation licenses this file to you under the MIT license.
|
||||||
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace System.Data.Common
|
||||||
|
{
|
||||||
|
|
||||||
|
internal class DataRowDbColumn : DbColumn
|
||||||
|
{
|
||||||
|
private DataColumnCollection schemaColumns;
|
||||||
|
private DataRow schemaRow;
|
||||||
|
|
||||||
|
public DataRowDbColumn(DataRow readerSchemaRow, DataColumnCollection readerSchemaColumns)
|
||||||
|
{
|
||||||
|
this.schemaRow = readerSchemaRow;
|
||||||
|
this.schemaColumns = readerSchemaColumns;
|
||||||
|
populateFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void populateFields()
|
||||||
|
{
|
||||||
|
AllowDBNull = GetDbColumnValue<bool?>(SchemaTableColumn.AllowDBNull);
|
||||||
|
BaseCatalogName = GetDbColumnValue<string>(SchemaTableOptionalColumn.BaseCatalogName);
|
||||||
|
BaseColumnName = GetDbColumnValue<string>(SchemaTableColumn.BaseColumnName);
|
||||||
|
BaseSchemaName = GetDbColumnValue<string>(SchemaTableColumn.BaseSchemaName);
|
||||||
|
BaseServerName = GetDbColumnValue<string>(SchemaTableOptionalColumn.BaseServerName);
|
||||||
|
BaseTableName = GetDbColumnValue<string>(SchemaTableColumn.BaseTableName);
|
||||||
|
ColumnName = GetDbColumnValue<string>(SchemaTableColumn.ColumnName);
|
||||||
|
ColumnOrdinal = GetDbColumnValue<int?>(SchemaTableColumn.ColumnOrdinal);
|
||||||
|
ColumnSize = GetDbColumnValue<int?>(SchemaTableColumn.ColumnSize);
|
||||||
|
IsAliased = GetDbColumnValue<bool?>(SchemaTableColumn.IsAliased);
|
||||||
|
IsAutoIncrement = GetDbColumnValue<bool?>(SchemaTableOptionalColumn.IsAutoIncrement);
|
||||||
|
IsExpression = GetDbColumnValue<bool>(SchemaTableColumn.IsExpression);
|
||||||
|
IsHidden = GetDbColumnValue<bool?>(SchemaTableOptionalColumn.IsHidden);
|
||||||
|
IsIdentity = GetDbColumnValue<bool?>("IsIdentity");
|
||||||
|
IsKey = GetDbColumnValue<bool?>(SchemaTableColumn.IsKey);
|
||||||
|
IsLong = GetDbColumnValue<bool?>(SchemaTableColumn.IsLong);
|
||||||
|
IsReadOnly = GetDbColumnValue<bool?>(SchemaTableOptionalColumn.IsReadOnly);
|
||||||
|
IsUnique = GetDbColumnValue<bool?>(SchemaTableColumn.IsUnique);
|
||||||
|
NumericPrecision = GetDbColumnValue<int?>(SchemaTableColumn.NumericPrecision);
|
||||||
|
NumericScale = GetDbColumnValue<int?>(SchemaTableColumn.NumericScale);
|
||||||
|
UdtAssemblyQualifiedName = GetDbColumnValue<string>("UdtAssemblyQualifiedName");
|
||||||
|
DataType = GetDbColumnValue<Type>(SchemaTableColumn.DataType);
|
||||||
|
DataTypeName = GetDbColumnValue<string>("DataTypeName");
|
||||||
|
}
|
||||||
|
|
||||||
|
private T GetDbColumnValue<T>(string columnName)
|
||||||
|
{
|
||||||
|
if (!schemaColumns.Contains(columnName))
|
||||||
|
{
|
||||||
|
return default(T);
|
||||||
|
}
|
||||||
|
object schemaObject = schemaRow[columnName];
|
||||||
|
if (schemaObject is T)
|
||||||
|
{
|
||||||
|
return (T)schemaObject;
|
||||||
|
}
|
||||||
|
return default(T);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class DbDataReaderExtensions
|
||||||
|
{
|
||||||
|
public static System.Collections.ObjectModel.ReadOnlyCollection<DbColumn> GetColumnSchema(this DbDataReader reader)
|
||||||
|
{
|
||||||
|
IList<DbColumn> columnSchema = new List<DbColumn>();
|
||||||
|
DataTable schemaTable = reader.GetSchemaTable();
|
||||||
|
DataColumnCollection schemaTableColumns = schemaTable.Columns;
|
||||||
|
foreach (DataRow row in schemaTable.Rows)
|
||||||
|
{
|
||||||
|
DbColumn dbColumn = new DataRowDbColumn(row, schemaTableColumns);
|
||||||
|
columnSchema.Add(dbColumn);
|
||||||
|
}
|
||||||
|
System.Collections.ObjectModel.ReadOnlyCollection<DbColumn> readOnlyColumnSchema = new System.Collections.ObjectModel.ReadOnlyCollection<DbColumn>(columnSchema);
|
||||||
|
return readOnlyColumnSchema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool CanGetColumnSchema(this DbDataReader reader)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// IDbColumnSchemaGenerator.cs
|
||||||
|
//
|
||||||
|
// Authors:
|
||||||
|
// Marek Safar <marek.safar@gmail.com>
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 Xamarin Inc (http://www.xamarin.com)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
// a copy of this software and associated documentation files (the
|
||||||
|
// "Software"), to deal in the Software without restriction, including
|
||||||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
// the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be
|
||||||
|
// included in all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace System.Data.Common
|
||||||
|
{
|
||||||
|
public interface IDbColumnSchemaGenerator
|
||||||
|
{
|
||||||
|
System.Collections.ObjectModel.ReadOnlyCollection<DbColumn> GetColumnSchema();
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user