Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / DurableInstancing / InstancePersistence.cs / 1305376 / InstancePersistence.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Runtime.DurableInstancing { using System; using System.Collections.Generic; using System.Runtime; using System.Xml.Linq; static class InstancePersistence { static readonly XNamespace activitiesCommandNamespace = XNamespace.Get("urn:schemas-microsoft-com:System.Activities.Persistence/command"); static readonly XNamespace activitiesEventNamespace = XNamespace.Get("urn:schemas-microsoft-com:System.Activities.Persistence/event"); internal static XNamespace ActivitiesCommandNamespace { get { return InstancePersistence.activitiesCommandNamespace; } } internal static XNamespace ActivitiesEventNamespace { get { return InstancePersistence.activitiesEventNamespace; } } public static void ValidatePropertyBag(this IDictionarybag) { bag.ValidatePropertyBag(false); } public static void ValidatePropertyBag(this IDictionary bag, bool allowDelete) { if (bag != null) { foreach (KeyValuePair property in bag) { property.ValidateProperty(allowDelete); } } } public static void ValidateProperty(this KeyValuePair property) { property.ValidateProperty(false); } public static void ValidateProperty(this KeyValuePair property, bool allowDelete) { if (property.Key == null) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.MetadataCannotContainNullKey)); } if (property.Value == null) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.MetadataCannotContainNullValue(property.Key))); } if (!allowDelete && property.Value.IsDeletedValue) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.InitialMetadataCannotBeDeleted(property.Key))); } } public static bool IsOptional(this InstanceValue value) { return (value.Options & InstanceValueOptions.Optional) != 0; } public static bool IsWriteOnly(this InstanceValue value) { return (value.Options & InstanceValueOptions.WriteOnly) != 0; } public static ReadOnlyDictionary ReadOnlyCopy(this IDictionary bag, bool allowWriteOnly) { if (bag != null && bag.Count > 0) { Dictionary copy = new Dictionary (bag.Count); foreach (KeyValuePair value in bag) { value.ValidateProperty(); if (!value.Value.IsWriteOnly()) { copy.Add(value.Key, value.Value); } else if (!allowWriteOnly) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.LoadedWriteOnlyValue)); } } return new ReadOnlyDictionary (copy, false); } else { return null; } } public static ReadOnlyDictionary ReadOnlyMergeInto(this IDictionary bag, IDictionary existing, bool allowWriteOnly) { Fx.Assert(existing == null || existing is ReadOnlyDictionary , "Should only be merging into other read-only dictionaries."); if (bag != null && bag.Count > 0) { Dictionary copy = existing == null ? new Dictionary (bag.Count) : new Dictionary (existing); foreach (KeyValuePair value in bag) { value.ValidateProperty(true); if (value.Value.IsDeletedValue) { copy.Remove(value.Key); } else if (!value.Value.IsWriteOnly()) { copy[value.Key] = value.Value; } else if (!allowWriteOnly) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.LoadedWriteOnlyValue)); } else { copy.Remove(value.Key); } } return new ReadOnlyDictionary (copy, false); } else { return (ReadOnlyDictionary ) existing; } } } } // 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
- SkewTransform.cs
- AnimationException.cs
- SynchronousChannelMergeEnumerator.cs
- GridViewCommandEventArgs.cs
- DataListItemCollection.cs
- RemotingConfigParser.cs
- Vector3DValueSerializer.cs
- SubordinateTransaction.cs
- EditBehavior.cs
- relpropertyhelper.cs
- BamlLocalizer.cs
- SqlFunctionAttribute.cs
- FixedFindEngine.cs
- DocumentStatusResources.cs
- OleDbWrapper.cs
- DrawToolTipEventArgs.cs
- HttpAsyncResult.cs
- PackWebResponse.cs
- BitStream.cs
- DataGridViewCellParsingEventArgs.cs
- RequestResizeEvent.cs
- BuilderPropertyEntry.cs
- JsonByteArrayDataContract.cs
- ActiveXHelper.cs
- NetStream.cs
- FreezableCollection.cs
- CmsUtils.cs
- odbcmetadatacollectionnames.cs
- TextCompositionEventArgs.cs
- StatusBarPanelClickEvent.cs
- EventArgs.cs
- VisualBrush.cs
- WebPartEditorCancelVerb.cs
- CredentialCache.cs
- DataGridViewColumnCollection.cs
- MsmqIntegrationMessageProperty.cs
- FixedSOMTextRun.cs
- ToolStripGripRenderEventArgs.cs
- Compress.cs
- GatewayIPAddressInformationCollection.cs
- UriScheme.cs
- ListControl.cs
- DashStyle.cs
- UIElementIsland.cs
- LinkUtilities.cs
- ProviderMetadataCachedInformation.cs
- ToolStripDropDownClosedEventArgs.cs
- Assert.cs
- UIElementPropertyUndoUnit.cs
- HasCopySemanticsAttribute.cs
- DownloadProgressEventArgs.cs
- WinFormsSecurity.cs
- UIElement3D.cs
- MimeMultiPart.cs
- EntityDataSourceReferenceGroup.cs
- TextParaLineResult.cs
- FilteredXmlReader.cs
- MeasureItemEvent.cs
- BezierSegment.cs
- LightweightEntityWrapper.cs
- XsdBuildProvider.cs
- StrongTypingException.cs
- _HTTPDateParse.cs
- ValidationError.cs
- CollectionDataContract.cs
- KnownTypeHelper.cs
- StateChangeEvent.cs
- System.Data_BID.cs
- ImageEditor.cs
- EventWaitHandleSecurity.cs
- ElementHostPropertyMap.cs
- SqlBuilder.cs
- ArrayExtension.cs
- BufferModeSettings.cs
- EmptyQuery.cs
- TypefaceCollection.cs
- SqlTypeConverter.cs
- TextBox.cs
- LinqMaximalSubtreeNominator.cs
- ActivationArguments.cs
- MatrixCamera.cs
- metadatamappinghashervisitor.cs
- IProvider.cs
- WindowVisualStateTracker.cs
- UIntPtr.cs
- SupportsEventValidationAttribute.cs
- EventLogEntryCollection.cs
- WizardPanelChangingEventArgs.cs
- Guid.cs
- XmlUtf8RawTextWriter.cs
- ContourSegment.cs
- DeflateStream.cs
- DayRenderEvent.cs
- FontConverter.cs
- entitydatasourceentitysetnameconverter.cs
- SecUtil.cs
- CheckBox.cs
- DBDataPermission.cs
- MemoryFailPoint.cs
- RecommendedAsConfigurableAttribute.cs