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
- FixedSOMTableRow.cs
- SizeConverter.cs
- SystemResourceHost.cs
- TimeSpanSecondsConverter.cs
- XamlWriter.cs
- XmlSchemaObjectCollection.cs
- TextBoxDesigner.cs
- documentsequencetextcontainer.cs
- TrustManagerMoreInformation.cs
- ACE.cs
- OdbcConnectionOpen.cs
- RequestCachingSection.cs
- NextPreviousPagerField.cs
- DataGridCellEditEndingEventArgs.cs
- BaseAsyncResult.cs
- OutputCacheSettings.cs
- validation.cs
- embossbitmapeffect.cs
- PeerToPeerException.cs
- GPRECT.cs
- DataGridItemCollection.cs
- ToolTipAutomationPeer.cs
- WebBrowserContainer.cs
- SortedDictionary.cs
- HTTPNotFoundHandler.cs
- BuildResult.cs
- PropertyMapper.cs
- DragAssistanceManager.cs
- SQLChars.cs
- SchemaTypeEmitter.cs
- List.cs
- ConnectionPoolManager.cs
- LinearGradientBrush.cs
- DataObjectCopyingEventArgs.cs
- recordstatefactory.cs
- PersistenceContextEnlistment.cs
- FocusChangedEventArgs.cs
- Internal.cs
- AutomationFocusChangedEventArgs.cs
- TemplateParser.cs
- SoapInteropTypes.cs
- StyleXamlParser.cs
- DataGridViewCellStyle.cs
- DesignSurfaceManager.cs
- DataStreamFromComStream.cs
- WhereQueryOperator.cs
- DataGridCommandEventArgs.cs
- TcpChannelHelper.cs
- TraversalRequest.cs
- SemanticBasicElement.cs
- _BufferOffsetSize.cs
- CompressionTransform.cs
- WorkflowApplication.cs
- HierarchicalDataBoundControlAdapter.cs
- SessionIDManager.cs
- AliasedSlot.cs
- LogEntrySerializationException.cs
- ListControlConvertEventArgs.cs
- NameValueFileSectionHandler.cs
- Scheduler.cs
- SHA256Managed.cs
- SchemaMerger.cs
- SmtpFailedRecipientException.cs
- DES.cs
- XmlILCommand.cs
- FormViewInsertEventArgs.cs
- Byte.cs
- HwndStylusInputProvider.cs
- StrongNameUtility.cs
- SafeNativeMethods.cs
- XamlFilter.cs
- RSAProtectedConfigurationProvider.cs
- ContextInformation.cs
- XmlSchemaSimpleType.cs
- CryptoStream.cs
- BooleanExpr.cs
- XamlPoint3DCollectionSerializer.cs
- TypefaceMap.cs
- D3DImage.cs
- TableSectionStyle.cs
- DATA_BLOB.cs
- basecomparevalidator.cs
- VerticalAlignConverter.cs
- WorkflowItemPresenter.cs
- VirtualDirectoryMapping.cs
- MimeObjectFactory.cs
- JumpTask.cs
- SecurityValidationBehavior.cs
- InvalidWMPVersionException.cs
- BitmapEffectGroup.cs
- WriteableBitmap.cs
- ExportOptions.cs
- ForwardPositionQuery.cs
- ProcessHost.cs
- WeakReadOnlyCollection.cs
- CultureMapper.cs
- UnsafeNetInfoNativeMethods.cs
- WSSecurityXXX2005.cs
- ExtentKey.cs
- XmlBinaryReader.cs