Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / DateTimeOffsetAdapter.cs / 1305376 / DateTimeOffsetAdapter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Runtime.Serialization { using System; using System.Reflection; using System.Xml; using System.Globalization; [DataContract(Name = "DateTimeOffset", Namespace = "http://schemas.datacontract.org/2004/07/System")] #if USE_REFEMIT public struct DateTimeOffsetAdapter #else internal struct DateTimeOffsetAdapter #endif { DateTime utcDateTime; short offsetMinutes; public DateTimeOffsetAdapter(DateTime dateTime, short offsetMinutes) { this.utcDateTime = dateTime; this.offsetMinutes = offsetMinutes; } [DataMember(Name = "DateTime", IsRequired = true)] public DateTime UtcDateTime { get { return utcDateTime; } set { utcDateTime = value; } } [DataMember(Name = "OffsetMinutes", IsRequired = true)] public short OffsetMinutes { get { return offsetMinutes; } set { offsetMinutes = value; } } public static DateTimeOffset GetDateTimeOffset(DateTimeOffsetAdapter value) { try { switch (value.UtcDateTime.Kind) { case DateTimeKind.Unspecified: return new DateTimeOffset(value.UtcDateTime, new TimeSpan(0, value.OffsetMinutes, 0)); //DateTimeKind.Utc and DateTimeKind.Local //Read in deserialized DateTime portion of the DateTimeOffsetAdapter and convert DateTimeKind to Unspecified. //Apply ofset information read from OffsetMinutes portion of the DateTimeOffsetAdapter. //Return converted DateTimeoffset object. default: DateTimeOffset deserialized = new DateTimeOffset(value.UtcDateTime); return deserialized.ToOffset(new TimeSpan(0, value.OffsetMinutes, 0)); } } catch (ArgumentException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlExceptionHelper.CreateConversionException(value.ToString(CultureInfo.InvariantCulture), "DateTimeOffset", exception)); } } public static DateTimeOffsetAdapter GetDateTimeOffsetAdapter(DateTimeOffset value) { return new DateTimeOffsetAdapter(value.UtcDateTime, (short)value.Offset.TotalMinutes); } public string ToString(IFormatProvider provider) { return "DateTime: " + this.UtcDateTime + ", Offset: " + this.OffsetMinutes; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Runtime.Serialization { using System; using System.Reflection; using System.Xml; using System.Globalization; [DataContract(Name = "DateTimeOffset", Namespace = "http://schemas.datacontract.org/2004/07/System")] #if USE_REFEMIT public struct DateTimeOffsetAdapter #else internal struct DateTimeOffsetAdapter #endif { DateTime utcDateTime; short offsetMinutes; public DateTimeOffsetAdapter(DateTime dateTime, short offsetMinutes) { this.utcDateTime = dateTime; this.offsetMinutes = offsetMinutes; } [DataMember(Name = "DateTime", IsRequired = true)] public DateTime UtcDateTime { get { return utcDateTime; } set { utcDateTime = value; } } [DataMember(Name = "OffsetMinutes", IsRequired = true)] public short OffsetMinutes { get { return offsetMinutes; } set { offsetMinutes = value; } } public static DateTimeOffset GetDateTimeOffset(DateTimeOffsetAdapter value) { try { switch (value.UtcDateTime.Kind) { case DateTimeKind.Unspecified: return new DateTimeOffset(value.UtcDateTime, new TimeSpan(0, value.OffsetMinutes, 0)); //DateTimeKind.Utc and DateTimeKind.Local //Read in deserialized DateTime portion of the DateTimeOffsetAdapter and convert DateTimeKind to Unspecified. //Apply ofset information read from OffsetMinutes portion of the DateTimeOffsetAdapter. //Return converted DateTimeoffset object. default: DateTimeOffset deserialized = new DateTimeOffset(value.UtcDateTime); return deserialized.ToOffset(new TimeSpan(0, value.OffsetMinutes, 0)); } } catch (ArgumentException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlExceptionHelper.CreateConversionException(value.ToString(CultureInfo.InvariantCulture), "DateTimeOffset", exception)); } } public static DateTimeOffsetAdapter GetDateTimeOffsetAdapter(DateTimeOffset value) { return new DateTimeOffsetAdapter(value.UtcDateTime, (short)value.Offset.TotalMinutes); } public string ToString(IFormatProvider provider) { return "DateTime: " + this.UtcDateTime + ", Offset: " + this.OffsetMinutes; } } } // 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
- ImportContext.cs
- DbException.cs
- BitmapEffectGroup.cs
- TypeExtensionConverter.cs
- DeclaredTypeValidator.cs
- BackgroundFormatInfo.cs
- ClientSettingsSection.cs
- WebPartAddingEventArgs.cs
- BatchServiceHost.cs
- TypeAccessException.cs
- Menu.cs
- StoreConnection.cs
- CheckedPointers.cs
- TreeNodeBindingCollection.cs
- Update.cs
- CanonicalFormWriter.cs
- ColorAnimation.cs
- StringReader.cs
- ObjectDisposedException.cs
- ObjectQuery.cs
- ObjectSet.cs
- DataTransferEventArgs.cs
- entitydatasourceentitysetnameconverter.cs
- AtomContentProperty.cs
- BufferedReadStream.cs
- ParagraphResult.cs
- CounterSampleCalculator.cs
- TransformerConfigurationWizardBase.cs
- ScrollChrome.cs
- CodeArrayIndexerExpression.cs
- TextSpan.cs
- MethodExpr.cs
- MatchAllMessageFilter.cs
- GPStream.cs
- GridViewRow.cs
- RuleSettingsCollection.cs
- TemplateManager.cs
- DynamicActivity.cs
- GraphicsPathIterator.cs
- XamlInt32CollectionSerializer.cs
- HashCoreRequest.cs
- ValueExpressions.cs
- OutputCacheProfileCollection.cs
- NullReferenceException.cs
- EntityDataSourceSelectedEventArgs.cs
- ManagementObjectSearcher.cs
- Converter.cs
- LineServicesCallbacks.cs
- TimeSpanValidator.cs
- CompilationLock.cs
- PriorityItem.cs
- Storyboard.cs
- ArrayList.cs
- WebResourceAttribute.cs
- DataGridTextBox.cs
- AutomationProperty.cs
- JournalEntry.cs
- CodeCatchClause.cs
- EventProvider.cs
- CompilationUtil.cs
- RequestNavigateEventArgs.cs
- ObjectSelectorEditor.cs
- DbBuffer.cs
- SoapFault.cs
- CommandBinding.cs
- XmlSchemaAttributeGroup.cs
- WriterOutput.cs
- NameObjectCollectionBase.cs
- SystemIPv6InterfaceProperties.cs
- FileSystemInfo.cs
- Stackframe.cs
- HttpRuntimeSection.cs
- NamespaceCollection.cs
- MasterPageParser.cs
- EntityClientCacheKey.cs
- StrokeRenderer.cs
- CellTreeSimplifier.cs
- RangeExpression.cs
- SkewTransform.cs
- XPathSelfQuery.cs
- ListViewGroupItemCollection.cs
- SafeTimerHandle.cs
- ListViewInsertedEventArgs.cs
- InvalidPrinterException.cs
- WorkflowInstance.cs
- ExpressionEditorAttribute.cs
- SqlGenericUtil.cs
- TemplatePartAttribute.cs
- PropertyTabChangedEvent.cs
- Int16AnimationUsingKeyFrames.cs
- XamlClipboardData.cs
- XmlNamespaceManager.cs
- Image.cs
- OdbcInfoMessageEvent.cs
- MessageQueueTransaction.cs
- HttpRequestTraceRecord.cs
- XPathDescendantIterator.cs
- ProxyGenerationError.cs
- ModelItem.cs
- TcpServerChannel.cs