Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseValidator.cs
- IInstanceTable.cs
- PeerNameRecord.cs
- HealthMonitoringSection.cs
- ProcessManager.cs
- ActivityExecutorOperation.cs
- SRGSCompiler.cs
- IndentedWriter.cs
- CultureMapper.cs
- SqlTrackingService.cs
- XamlStream.cs
- DataStreams.cs
- ScriptResourceAttribute.cs
- HtmlGenericControl.cs
- CapabilitiesPattern.cs
- ListMarkerLine.cs
- SafeLibraryHandle.cs
- Lookup.cs
- HwndStylusInputProvider.cs
- SqlCommand.cs
- Normalization.cs
- GetPolicyDetailsRequest.cs
- TimeStampChecker.cs
- ReturnEventArgs.cs
- ProjectionCamera.cs
- RtfFormatStack.cs
- DoubleConverter.cs
- storepermissionattribute.cs
- BamlTreeMap.cs
- SmtpFailedRecipientsException.cs
- PageParserFilter.cs
- CodeGenHelper.cs
- MatrixTransform3D.cs
- OleDbConnectionFactory.cs
- VScrollProperties.cs
- dataobject.cs
- ArraySubsetEnumerator.cs
- BaseTemplateParser.cs
- StateFinalizationActivity.cs
- clipboard.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- WizardPanel.cs
- FlowDocumentView.cs
- ParameterRetriever.cs
- AliasExpr.cs
- RequestCachePolicy.cs
- SchemaAttDef.cs
- CorrelationResolver.cs
- CellParaClient.cs
- RawStylusInputCustomData.cs
- Trace.cs
- SignatureDescription.cs
- WebPartsPersonalizationAuthorization.cs
- StorageEndPropertyMapping.cs
- DEREncoding.cs
- WebPartsPersonalization.cs
- XmlSchemaInfo.cs
- ServiceAuthorizationBehavior.cs
- XmlDeclaration.cs
- ErrorHandler.cs
- ToolStripRendererSwitcher.cs
- StructuredTypeEmitter.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- Label.cs
- FontWeight.cs
- ClientTarget.cs
- ScrollBar.cs
- MemberHolder.cs
- DataGridHeaderBorder.cs
- HtmlContainerControl.cs
- CheckBoxBaseAdapter.cs
- ProcessManager.cs
- Interlocked.cs
- StatusBarItem.cs
- FocusTracker.cs
- ColorConvertedBitmap.cs
- EntityParameterCollection.cs
- ShapingEngine.cs
- HtmlSelect.cs
- WCFBuildProvider.cs
- ColumnMapTranslator.cs
- ChannelProtectionRequirements.cs
- SecurityCriticalDataForSet.cs
- XPathSelectionIterator.cs
- CommonGetThemePartSize.cs
- coordinatorfactory.cs
- SamlAuthorizationDecisionClaimResource.cs
- MaskInputRejectedEventArgs.cs
- UrlPath.cs
- DesignerValidationSummaryAdapter.cs
- DiscoveryMessageSequence.cs
- NavigationProgressEventArgs.cs
- AuthenticationService.cs
- ScrollBarRenderer.cs
- FixedSOMTextRun.cs
- XNodeValidator.cs
- IndexingContentUnit.cs
- UniqueID.cs
- Menu.cs
- BitmapInitialize.cs