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
- MethodExpr.cs
- RepeatInfo.cs
- ComponentChangingEvent.cs
- ApplicationException.cs
- GACIdentityPermission.cs
- TypeConverterAttribute.cs
- NodeLabelEditEvent.cs
- FrameworkElementFactory.cs
- CellTreeNode.cs
- SqlOuterApplyReducer.cs
- TaskScheduler.cs
- GeometryHitTestResult.cs
- SoapCodeExporter.cs
- Publisher.cs
- PeerTransportCredentialType.cs
- ValueQuery.cs
- DbConnectionPool.cs
- XmlSchemaProviderAttribute.cs
- DataGridViewRowsRemovedEventArgs.cs
- MergeLocalizationDirectives.cs
- ContentType.cs
- TraversalRequest.cs
- FixedSOMTable.cs
- TextTreeUndo.cs
- SurrogateSelector.cs
- WebSysDefaultValueAttribute.cs
- SupportsEventValidationAttribute.cs
- HtmlTableCell.cs
- AdRotator.cs
- ListViewContainer.cs
- DetailsViewRowCollection.cs
- EvidenceBase.cs
- WeakReferenceEnumerator.cs
- RegisteredHiddenField.cs
- ByteFacetDescriptionElement.cs
- LoadWorkflowByInstanceKeyCommand.cs
- Timer.cs
- TextWriter.cs
- SpotLight.cs
- ProtocolViolationException.cs
- ResourceReader.cs
- BaseEntityWrapper.cs
- UInt16Storage.cs
- SmtpDigestAuthenticationModule.cs
- DecimalConverter.cs
- TabControl.cs
- WebConfigurationManager.cs
- Identity.cs
- XmlQueryType.cs
- JapaneseLunisolarCalendar.cs
- IItemContainerGenerator.cs
- JoinSymbol.cs
- Size3D.cs
- SHA1CryptoServiceProvider.cs
- GetWinFXPath.cs
- XamlToRtfWriter.cs
- ModifiableIteratorCollection.cs
- HtmlString.cs
- BamlResourceDeserializer.cs
- ReflectionPermission.cs
- DependencyPropertyHelper.cs
- DataServiceContext.cs
- FileReservationCollection.cs
- QuadraticBezierSegment.cs
- XPathScanner.cs
- Asn1IntegerConverter.cs
- FixedSOMTableRow.cs
- WebPartTransformerCollection.cs
- ManagementException.cs
- CreateUserWizard.cs
- ScalarConstant.cs
- DefaultParameterValueAttribute.cs
- ClientBuildManager.cs
- BindingContext.cs
- SqlXml.cs
- SqlBuilder.cs
- NativeObjectSecurity.cs
- CodeDirectiveCollection.cs
- ColumnCollection.cs
- FilePresentation.cs
- RuntimeVariablesExpression.cs
- SolidBrush.cs
- SqlDataSourceCommandParser.cs
- CollaborationHelperFunctions.cs
- ProcessHostFactoryHelper.cs
- BoolExpr.cs
- InternalConfigEventArgs.cs
- DataControlButton.cs
- UxThemeWrapper.cs
- ToolStripStatusLabel.cs
- CheckoutException.cs
- DataPagerField.cs
- EntityDataSourceQueryBuilder.cs
- InitializerFacet.cs
- BindingListCollectionView.cs
- DbConnectionClosed.cs
- Assert.cs
- DataGridViewRowCollection.cs
- ResourceSet.cs
- CodeAttributeArgument.cs