Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataSet / System / Data / DataSetUtil.cs / 1305376 / DataSetUtil.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.DataSetExtensions;
using System.Diagnostics;
internal static class DataSetUtil
{
#region CheckArgument
internal static void CheckArgumentNull(T argumentValue, string argumentName) where T : class
{
if (null == argumentValue)
{
throw ArgumentNull(argumentName);
}
}
#endregion
#region Trace
private static T TraceException(string trace, T e)
{
Debug.Assert(null != e, "TraceException: null Exception");
if (null != e)
{
//Bid.Trace(trace, e.ToString()); // will include callstack if permission is available
}
return e;
}
private static T TraceExceptionAsReturnValue(T e)
{
return TraceException(" '%ls'\n", e);
}
#endregion
#region new Exception
internal static ArgumentException Argument(string message)
{
return TraceExceptionAsReturnValue(new ArgumentException(message));
}
internal static ArgumentNullException ArgumentNull(string message)
{
return TraceExceptionAsReturnValue(new ArgumentNullException(message));
}
internal static ArgumentOutOfRangeException ArgumentOutOfRange(string message, string parameterName)
{
return TraceExceptionAsReturnValue(new ArgumentOutOfRangeException(parameterName, message));
}
internal static InvalidCastException InvalidCast(string message)
{
return TraceExceptionAsReturnValue(new InvalidCastException(message));
}
internal static InvalidOperationException InvalidOperation(string message)
{
return TraceExceptionAsReturnValue(new InvalidOperationException(message));
}
internal static NotSupportedException NotSupported(string message)
{
return TraceExceptionAsReturnValue(new NotSupportedException(message));
}
#endregion
#region new EnumerationValueNotValid
static internal ArgumentOutOfRangeException InvalidEnumerationValue(Type type, int value)
{
return ArgumentOutOfRange(Strings.DataSetLinq_InvalidEnumerationValue(type.Name, value.ToString(System.Globalization.CultureInfo.InvariantCulture)), type.Name);
}
static internal ArgumentOutOfRangeException InvalidDataRowState(DataRowState value)
{
#if DEBUG
switch (value)
{
case DataRowState.Detached:
case DataRowState.Unchanged:
case DataRowState.Added:
case DataRowState.Deleted:
case DataRowState.Modified:
Debug.Assert(false, "valid DataRowState " + value.ToString());
break;
}
#endif
return InvalidEnumerationValue(typeof(DataRowState), (int)value);
}
static internal ArgumentOutOfRangeException InvalidLoadOption(LoadOption value)
{
#if DEBUG
switch (value)
{
case LoadOption.OverwriteChanges:
case LoadOption.PreserveChanges:
case LoadOption.Upsert:
Debug.Assert(false, "valid LoadOption " + value.ToString());
break;
}
#endif
return InvalidEnumerationValue(typeof(LoadOption), (int)value);
}
#endregion
// only StackOverflowException & ThreadAbortException are sealed classes
static private readonly Type StackOverflowType = typeof(System.StackOverflowException);
static private readonly Type OutOfMemoryType = typeof(System.OutOfMemoryException);
static private readonly Type ThreadAbortType = typeof(System.Threading.ThreadAbortException);
static private readonly Type NullReferenceType = typeof(System.NullReferenceException);
static private readonly Type AccessViolationType = typeof(System.AccessViolationException);
static private readonly Type SecurityType = typeof(System.Security.SecurityException);
static internal bool IsCatchableExceptionType(Exception e)
{
// a 'catchable' exception is defined by what it is not.
Type type = e.GetType();
return ((type != StackOverflowType) &&
(type != OutOfMemoryType) &&
(type != ThreadAbortType) &&
(type != NullReferenceType) &&
(type != AccessViolationType) &&
!SecurityType.IsAssignableFrom(type));
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.DataSetExtensions;
using System.Diagnostics;
internal static class DataSetUtil
{
#region CheckArgument
internal static void CheckArgumentNull(T argumentValue, string argumentName) where T : class
{
if (null == argumentValue)
{
throw ArgumentNull(argumentName);
}
}
#endregion
#region Trace
private static T TraceException(string trace, T e)
{
Debug.Assert(null != e, "TraceException: null Exception");
if (null != e)
{
//Bid.Trace(trace, e.ToString()); // will include callstack if permission is available
}
return e;
}
private static T TraceExceptionAsReturnValue(T e)
{
return TraceException(" '%ls'\n", e);
}
#endregion
#region new Exception
internal static ArgumentException Argument(string message)
{
return TraceExceptionAsReturnValue(new ArgumentException(message));
}
internal static ArgumentNullException ArgumentNull(string message)
{
return TraceExceptionAsReturnValue(new ArgumentNullException(message));
}
internal static ArgumentOutOfRangeException ArgumentOutOfRange(string message, string parameterName)
{
return TraceExceptionAsReturnValue(new ArgumentOutOfRangeException(parameterName, message));
}
internal static InvalidCastException InvalidCast(string message)
{
return TraceExceptionAsReturnValue(new InvalidCastException(message));
}
internal static InvalidOperationException InvalidOperation(string message)
{
return TraceExceptionAsReturnValue(new InvalidOperationException(message));
}
internal static NotSupportedException NotSupported(string message)
{
return TraceExceptionAsReturnValue(new NotSupportedException(message));
}
#endregion
#region new EnumerationValueNotValid
static internal ArgumentOutOfRangeException InvalidEnumerationValue(Type type, int value)
{
return ArgumentOutOfRange(Strings.DataSetLinq_InvalidEnumerationValue(type.Name, value.ToString(System.Globalization.CultureInfo.InvariantCulture)), type.Name);
}
static internal ArgumentOutOfRangeException InvalidDataRowState(DataRowState value)
{
#if DEBUG
switch (value)
{
case DataRowState.Detached:
case DataRowState.Unchanged:
case DataRowState.Added:
case DataRowState.Deleted:
case DataRowState.Modified:
Debug.Assert(false, "valid DataRowState " + value.ToString());
break;
}
#endif
return InvalidEnumerationValue(typeof(DataRowState), (int)value);
}
static internal ArgumentOutOfRangeException InvalidLoadOption(LoadOption value)
{
#if DEBUG
switch (value)
{
case LoadOption.OverwriteChanges:
case LoadOption.PreserveChanges:
case LoadOption.Upsert:
Debug.Assert(false, "valid LoadOption " + value.ToString());
break;
}
#endif
return InvalidEnumerationValue(typeof(LoadOption), (int)value);
}
#endregion
// only StackOverflowException & ThreadAbortException are sealed classes
static private readonly Type StackOverflowType = typeof(System.StackOverflowException);
static private readonly Type OutOfMemoryType = typeof(System.OutOfMemoryException);
static private readonly Type ThreadAbortType = typeof(System.Threading.ThreadAbortException);
static private readonly Type NullReferenceType = typeof(System.NullReferenceException);
static private readonly Type AccessViolationType = typeof(System.AccessViolationException);
static private readonly Type SecurityType = typeof(System.Security.SecurityException);
static internal bool IsCatchableExceptionType(Exception e)
{
// a 'catchable' exception is defined by what it is not.
Type type = e.GetType();
return ((type != StackOverflowType) &&
(type != OutOfMemoryType) &&
(type != ThreadAbortType) &&
(type != NullReferenceType) &&
(type != AccessViolationType) &&
!SecurityType.IsAssignableFrom(type));
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- JsonDataContract.cs
- ServicesExceptionNotHandledEventArgs.cs
- ContextMenuStrip.cs
- Attributes.cs
- XpsFilter.cs
- NavigatorInput.cs
- UrlMapping.cs
- BooleanProjectedSlot.cs
- OneOfElement.cs
- ObjectSerializerFactory.cs
- SafeWaitHandle.cs
- CheckBoxAutomationPeer.cs
- MulticastDelegate.cs
- WebPartPersonalization.cs
- TemplateInstanceAttribute.cs
- CodeMemberField.cs
- StrongNameMembershipCondition.cs
- SafeNativeMethods.cs
- StrongNameIdentityPermission.cs
- StorageMappingItemCollection.cs
- StringAttributeCollection.cs
- PersistencePipeline.cs
- DateTimeValueSerializerContext.cs
- backend.cs
- InputScopeManager.cs
- HtmlInputImage.cs
- ZipIOLocalFileDataDescriptor.cs
- DocumentOrderQuery.cs
- BitmapInitialize.cs
- XmlSchemaNotation.cs
- PackageRelationshipSelector.cs
- ConnectionConsumerAttribute.cs
- BindingManagerDataErrorEventArgs.cs
- InstancePersistenceContext.cs
- ProxyGenerationError.cs
- ResourceReferenceKeyNotFoundException.cs
- MexHttpBindingElement.cs
- XPathExpr.cs
- Set.cs
- IImplicitResourceProvider.cs
- OleDbDataAdapter.cs
- IdentityReference.cs
- SoapInteropTypes.cs
- SqlDataAdapter.cs
- ControlBuilder.cs
- SpnEndpointIdentityExtension.cs
- ObjectDisposedException.cs
- ProxyWebPart.cs
- Brush.cs
- TraceEventCache.cs
- Code.cs
- IResourceProvider.cs
- DataServiceQueryOfT.cs
- RepeatBehaviorConverter.cs
- TimeSpan.cs
- HttpCachePolicyElement.cs
- sqlnorm.cs
- COM2ExtendedTypeConverter.cs
- TdsValueSetter.cs
- XmlDocumentSurrogate.cs
- FlowchartStart.xaml.cs
- ColumnMapTranslator.cs
- MetabaseServerConfig.cs
- SessionPageStatePersister.cs
- MulticastNotSupportedException.cs
- XmlNodeChangedEventManager.cs
- _TLSstream.cs
- LayoutTableCell.cs
- DocumentOrderQuery.cs
- XmlElementAttributes.cs
- safesecurityhelperavalon.cs
- ButtonField.cs
- CrossAppDomainChannel.cs
- WebServiceEnumData.cs
- XsdDataContractImporter.cs
- EnumType.cs
- Certificate.cs
- AssemblyAttributesGoHere.cs
- SqlExpander.cs
- InitializationEventAttribute.cs
- RecommendedAsConfigurableAttribute.cs
- TextSelectionProcessor.cs
- EdmEntityTypeAttribute.cs
- oledbconnectionstring.cs
- SoapFault.cs
- ExpressionList.cs
- MimeMultiPart.cs
- FrameSecurityDescriptor.cs
- EdmProviderManifest.cs
- Vector3DValueSerializer.cs
- _ListenerAsyncResult.cs
- DragSelectionMessageFilter.cs
- SQLBytesStorage.cs
- listitem.cs
- ResourceDescriptionAttribute.cs
- MergablePropertyAttribute.cs
- LookupNode.cs
- codemethodreferenceexpression.cs
- HttpApplication.cs
- BulletChrome.cs