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
- EventMappingSettings.cs
- OutputCacheProviderCollection.cs
- MethodRental.cs
- SQLRoleProvider.cs
- UriTemplateTableMatchCandidate.cs
- Preprocessor.cs
- WebPartCancelEventArgs.cs
- PeerDuplexChannelListener.cs
- securitymgrsite.cs
- RegisteredHiddenField.cs
- ArrayTypeMismatchException.cs
- _HeaderInfoTable.cs
- SaveFileDialog.cs
- DictionaryTraceRecord.cs
- DoubleAverageAggregationOperator.cs
- EndpointDiscoveryMetadata11.cs
- FontFamilyValueSerializer.cs
- LoginCancelEventArgs.cs
- DataColumnMappingCollection.cs
- MetricEntry.cs
- Utils.cs
- SqlConnectionPoolGroupProviderInfo.cs
- DocumentOrderComparer.cs
- WebService.cs
- Match.cs
- SiteIdentityPermission.cs
- DataColumn.cs
- XamlPathDataSerializer.cs
- AutomationPatternInfo.cs
- BodyWriter.cs
- GridEntryCollection.cs
- PathFigure.cs
- SocketConnection.cs
- UserNamePasswordValidator.cs
- MatrixAnimationUsingKeyFrames.cs
- XmlDocumentSerializer.cs
- RepeaterItemEventArgs.cs
- StartUpEventArgs.cs
- GenericPrincipal.cs
- StyleCollection.cs
- WeakReferenceEnumerator.cs
- Pen.cs
- BuildProvider.cs
- RegexCompiler.cs
- GeneralTransformCollection.cs
- HtmlInputImage.cs
- PenLineJoinValidation.cs
- ReferenceAssemblyAttribute.cs
- InputScopeAttribute.cs
- CngKeyBlobFormat.cs
- Image.cs
- DiscoveryClientRequestChannel.cs
- BrowserInteropHelper.cs
- ListViewDataItem.cs
- COM2TypeInfoProcessor.cs
- AppDomainProtocolHandler.cs
- ZipIOLocalFileBlock.cs
- MembershipSection.cs
- EnumBuilder.cs
- ValueTypeFixupInfo.cs
- OutputCacheProfileCollection.cs
- HttpWriter.cs
- BamlTreeNode.cs
- PenThread.cs
- XDRSchema.cs
- AuthenticodeSignatureInformation.cs
- CheckoutException.cs
- TextBounds.cs
- XmlNullResolver.cs
- XmlCharType.cs
- PriorityQueue.cs
- Touch.cs
- MulticastNotSupportedException.cs
- Util.cs
- DictionarySectionHandler.cs
- Number.cs
- SynchronizationLockException.cs
- Queue.cs
- mactripleDES.cs
- BasePattern.cs
- FlagsAttribute.cs
- TransformCollection.cs
- SoapCommonClasses.cs
- CngKey.cs
- MetabaseServerConfig.cs
- LinkedResourceCollection.cs
- AttributeEmitter.cs
- HeaderedItemsControl.cs
- MsmqIntegrationProcessProtocolHandler.cs
- ZipPackagePart.cs
- MessageQueueCriteria.cs
- _UriSyntax.cs
- DesignTimeParseData.cs
- NativeMethods.cs
- TabPanel.cs
- FormParameter.cs
- XmlSchemaSimpleTypeList.cs
- BindingGroup.cs
- WorkflowInstanceExtensionProvider.cs
- RelationshipConstraintValidator.cs