Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / WebUtil.cs / 1305376 / WebUtil.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// static utility functions // //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; #if !ASTORIA_LIGHT // Data.Services http stack using System.Net; #else using System.Data.Services.Http; #endif ///web utility functions internal static partial class WebUtil { ////// Whether DataServiceCollection<> type is available. /// private static bool? dataServiceCollectionAvailable = null; ////// Returns true if DataServiceCollection<> type is available or false otherwise. /// private static bool DataServiceCollectionAvailable { get { if (dataServiceCollectionAvailable == null) { try { dataServiceCollectionAvailable = GetDataServiceCollectionOfTType() != null; } catch (FileNotFoundException) { // the assembly or one of its dependencies (read: WindowsBase.dll) was not found. DataServiceCollection is not available. dataServiceCollectionAvailable = false; } } Debug.Assert(dataServiceCollectionAvailable != null, "observableCollectionOfTAvailable must not be null here."); return (bool)dataServiceCollectionAvailable; } } ///copy from one stream to another /// input stream /// output stream /// reusable buffer ///count of copied bytes internal static long CopyStream(Stream input, Stream output, ref byte[] refBuffer) { Debug.Assert(null != input, "null input stream"); Debug.Assert(null != output, "null output stream"); long total = 0; byte[] buffer = refBuffer; if (null == buffer) { refBuffer = buffer = new byte[1000]; } int count = 0; while (input.CanRead && (0 < (count = input.Read(buffer, 0, buffer.Length)))) { output.Write(buffer, 0, count); total += count; } return total; } ///get response object from possible WebException /// exception to probe /// http web respose object from exception internal static void GetHttpWebResponse(InvalidOperationException exception, ref HttpWebResponse response) { if (null == response) { WebException webexception = (exception as WebException); if (null != webexception) { response = (HttpWebResponse)webexception.Response; } } } ///is this a success status code /// status code ///true if status is between 200-299 internal static bool SuccessStatusCode(HttpStatusCode status) { return (200 <= (int)status && (int)status < 300); } ////// turn the response object headers into a dictionary /// /// response ///dictionary internal static DictionaryWrapResponseHeaders(HttpWebResponse response) { Dictionary headers = new Dictionary (EqualityComparer .Default); if (null != response) { foreach (string name in response.Headers.AllKeys) { headers.Add(name, response.Headers[name]); } } return headers; } /// /// Applies headers in the dictionary to a web request. /// This has a special case for some of the headers to set the properties on the request instead of using the Headers collection. /// /// The dictionary with the headers to apply. /// The request to apply the headers to. /// If set to true the Accept header will be ignored /// and the request.Accept property will not be touched. internal static void ApplyHeadersToRequest(Dictionaryheaders, HttpWebRequest request, bool ignoreAcceptHeader) { foreach (KeyValuePair header in headers) { if (string.Equals(header.Key, XmlConstants.HttpRequestAccept, StringComparison.Ordinal)) { if (!ignoreAcceptHeader) { request.Accept = header.Value; } } else if (string.Equals(header.Key, XmlConstants.HttpContentType, StringComparison.Ordinal)) { request.ContentType = header.Value; } else { request.Headers[header.Key] = header.Value; } } } /// /// Checks if the given type is DataServiceCollection<> type. /// /// Type to be checked. ///true if the provided type is DataServiceCollection<> or false otherwise. internal static bool IsDataServiceCollectionType(Type t) { if (DataServiceCollectionAvailable) { return t == GetDataServiceCollectionOfTType(); } return false; } ////// Creates an instance of DataServiceCollection<> class using provided types. /// /// Types to be used for creating DataServiceCollection<> object. ////// Instance of DataServiceCollection<> class created using provided types or null if DataServiceCollection<> /// type is not avaiable. /// internal static Type GetDataServiceCollectionOfT(params Type[] typeArguments) { if (DataServiceCollectionAvailable) { Debug.Assert( GetDataServiceCollectionOfTType() != null, "DataServiceCollection is available so GetDataServiceCollectionOfTType() must not return null."); return GetDataServiceCollectionOfTType().MakeGenericType(typeArguments); } return null; } ////// Forces loading WindowsBase assembly. If WindowsBase assembly is not present JITter will throw an exception. /// This method MUST NOT be inlined otherwise we won't be able to catch the exception by JITter in the caller. /// ///typeof(DataServiceCollection<>) [MethodImpl(MethodImplOptions.NoInlining)] private static Type GetDataServiceCollectionOfTType() { return typeof(DataServiceCollection<>); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// static utility functions // //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; #if !ASTORIA_LIGHT // Data.Services http stack using System.Net; #else using System.Data.Services.Http; #endif ///web utility functions internal static partial class WebUtil { ////// Whether DataServiceCollection<> type is available. /// private static bool? dataServiceCollectionAvailable = null; ////// Returns true if DataServiceCollection<> type is available or false otherwise. /// private static bool DataServiceCollectionAvailable { get { if (dataServiceCollectionAvailable == null) { try { dataServiceCollectionAvailable = GetDataServiceCollectionOfTType() != null; } catch (FileNotFoundException) { // the assembly or one of its dependencies (read: WindowsBase.dll) was not found. DataServiceCollection is not available. dataServiceCollectionAvailable = false; } } Debug.Assert(dataServiceCollectionAvailable != null, "observableCollectionOfTAvailable must not be null here."); return (bool)dataServiceCollectionAvailable; } } ///copy from one stream to another /// input stream /// output stream /// reusable buffer ///count of copied bytes internal static long CopyStream(Stream input, Stream output, ref byte[] refBuffer) { Debug.Assert(null != input, "null input stream"); Debug.Assert(null != output, "null output stream"); long total = 0; byte[] buffer = refBuffer; if (null == buffer) { refBuffer = buffer = new byte[1000]; } int count = 0; while (input.CanRead && (0 < (count = input.Read(buffer, 0, buffer.Length)))) { output.Write(buffer, 0, count); total += count; } return total; } ///get response object from possible WebException /// exception to probe /// http web respose object from exception internal static void GetHttpWebResponse(InvalidOperationException exception, ref HttpWebResponse response) { if (null == response) { WebException webexception = (exception as WebException); if (null != webexception) { response = (HttpWebResponse)webexception.Response; } } } ///is this a success status code /// status code ///true if status is between 200-299 internal static bool SuccessStatusCode(HttpStatusCode status) { return (200 <= (int)status && (int)status < 300); } ////// turn the response object headers into a dictionary /// /// response ///dictionary internal static DictionaryWrapResponseHeaders(HttpWebResponse response) { Dictionary headers = new Dictionary (EqualityComparer .Default); if (null != response) { foreach (string name in response.Headers.AllKeys) { headers.Add(name, response.Headers[name]); } } return headers; } /// /// Applies headers in the dictionary to a web request. /// This has a special case for some of the headers to set the properties on the request instead of using the Headers collection. /// /// The dictionary with the headers to apply. /// The request to apply the headers to. /// If set to true the Accept header will be ignored /// and the request.Accept property will not be touched. internal static void ApplyHeadersToRequest(Dictionaryheaders, HttpWebRequest request, bool ignoreAcceptHeader) { foreach (KeyValuePair header in headers) { if (string.Equals(header.Key, XmlConstants.HttpRequestAccept, StringComparison.Ordinal)) { if (!ignoreAcceptHeader) { request.Accept = header.Value; } } else if (string.Equals(header.Key, XmlConstants.HttpContentType, StringComparison.Ordinal)) { request.ContentType = header.Value; } else { request.Headers[header.Key] = header.Value; } } } /// /// Checks if the given type is DataServiceCollection<> type. /// /// Type to be checked. ///true if the provided type is DataServiceCollection<> or false otherwise. internal static bool IsDataServiceCollectionType(Type t) { if (DataServiceCollectionAvailable) { return t == GetDataServiceCollectionOfTType(); } return false; } ////// Creates an instance of DataServiceCollection<> class using provided types. /// /// Types to be used for creating DataServiceCollection<> object. ////// Instance of DataServiceCollection<> class created using provided types or null if DataServiceCollection<> /// type is not avaiable. /// internal static Type GetDataServiceCollectionOfT(params Type[] typeArguments) { if (DataServiceCollectionAvailable) { Debug.Assert( GetDataServiceCollectionOfTType() != null, "DataServiceCollection is available so GetDataServiceCollectionOfTType() must not return null."); return GetDataServiceCollectionOfTType().MakeGenericType(typeArguments); } return null; } ////// Forces loading WindowsBase assembly. If WindowsBase assembly is not present JITter will throw an exception. /// This method MUST NOT be inlined otherwise we won't be able to catch the exception by JITter in the caller. /// ///typeof(DataServiceCollection<>) [MethodImpl(MethodImplOptions.NoInlining)] private static Type GetDataServiceCollectionOfTType() { return typeof(DataServiceCollection<>); } } } // 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
- FileDetails.cs
- ClientSettingsSection.cs
- ConfigurationValues.cs
- Missing.cs
- ColumnTypeConverter.cs
- EventMappingSettings.cs
- AssemblyName.cs
- ReachPageContentCollectionSerializer.cs
- HighlightOverlayGlyph.cs
- NavigationPropertySingletonExpression.cs
- PresentationSource.cs
- OpenFileDialog.cs
- UrlMappingsSection.cs
- HtmlInputButton.cs
- HandledMouseEvent.cs
- ManagementBaseObject.cs
- ImportContext.cs
- ClassicBorderDecorator.cs
- ComponentRenameEvent.cs
- StatusStrip.cs
- PropertyManager.cs
- Types.cs
- X509SecurityTokenParameters.cs
- MailWriter.cs
- LogStore.cs
- RunClient.cs
- XamlTreeBuilderBamlRecordWriter.cs
- WebUtil.cs
- COAUTHIDENTITY.cs
- StaticExtension.cs
- Rights.cs
- RowVisual.cs
- SqlInternalConnection.cs
- JsonUriDataContract.cs
- DataGridTableCollection.cs
- DrawingAttributeSerializer.cs
- StatusBarItemAutomationPeer.cs
- DelegatedStream.cs
- RoutedPropertyChangedEventArgs.cs
- TargetParameterCountException.cs
- _ListenerRequestStream.cs
- NoResizeHandleGlyph.cs
- StructureChangedEventArgs.cs
- DateTimeConverter.cs
- CodeSnippetTypeMember.cs
- Application.cs
- URLString.cs
- HttpHandlerAction.cs
- RawStylusSystemGestureInputReport.cs
- SqlNodeTypeOperators.cs
- WindowsListViewItem.cs
- XmlStringTable.cs
- PostBackTrigger.cs
- CroppedBitmap.cs
- URLString.cs
- DetailsViewInsertEventArgs.cs
- shaperfactoryquerycachekey.cs
- DataServiceClientException.cs
- WindowsFont.cs
- CardSpaceShim.cs
- LocalizedNameDescriptionPair.cs
- AnimationStorage.cs
- LocalizabilityAttribute.cs
- DmlSqlGenerator.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- TreeViewDataItemAutomationPeer.cs
- MsmqChannelFactoryBase.cs
- SqlCacheDependencyDatabase.cs
- DataGrid.cs
- SQLMoney.cs
- ToReply.cs
- XmlSchemaAnnotated.cs
- BitConverter.cs
- FieldValue.cs
- PointLightBase.cs
- TriggerActionCollection.cs
- Effect.cs
- CFGGrammar.cs
- InputDevice.cs
- StyleXamlParser.cs
- Helper.cs
- RC2.cs
- _NegoStream.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- DataGridPagerStyle.cs
- RootBrowserWindow.cs
- RijndaelCryptoServiceProvider.cs
- ReadOnlyActivityGlyph.cs
- EventBuilder.cs
- XdrBuilder.cs
- ConfigurationElementCollection.cs
- SqlProviderManifest.cs
- ConfigurationValidatorBase.cs
- ConfigurationManager.cs
- OptimalBreakSession.cs
- TableRow.cs
- IpcPort.cs
- ParserStreamGeometryContext.cs
- InternalRelationshipCollection.cs
- CodeMemberMethod.cs