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
- RepeaterDataBoundAdapter.cs
- ColorTransformHelper.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- UndoManager.cs
- TrackingParameters.cs
- MobileComponentEditorPage.cs
- ExternalException.cs
- CardSpacePolicyElement.cs
- TrustDriver.cs
- DesignTimeHTMLTextWriter.cs
- ApplicationId.cs
- PolicyLevel.cs
- TypeDelegator.cs
- StylusButtonCollection.cs
- RNGCryptoServiceProvider.cs
- formatter.cs
- RadioButtonStandardAdapter.cs
- ModelUtilities.cs
- BitConverter.cs
- _SafeNetHandles.cs
- SelectionHighlightInfo.cs
- ScriptHandlerFactory.cs
- WebPartDisplayModeCollection.cs
- ZipIOModeEnforcingStream.cs
- DataRecordInfo.cs
- GrammarBuilderWildcard.cs
- ObjectPersistData.cs
- TextAction.cs
- InfiniteTimeSpanConverter.cs
- _DigestClient.cs
- PropertyPathConverter.cs
- DashStyles.cs
- X509Utils.cs
- TextWriter.cs
- DataGridColumnCollection.cs
- IdentifierCollection.cs
- LightweightCodeGenerator.cs
- ControlParameter.cs
- RepeaterItemCollection.cs
- SimpleWebHandlerParser.cs
- ObjectItemNoOpAssemblyLoader.cs
- XmlConverter.cs
- ADMembershipUser.cs
- ToolStripOverflow.cs
- MimeTypeMapper.cs
- _ScatterGatherBuffers.cs
- FrameworkPropertyMetadata.cs
- Version.cs
- ToolStripProgressBar.cs
- HttpHandlerActionCollection.cs
- BindableTemplateBuilder.cs
- BaseTemplateBuildProvider.cs
- ExceptionUtil.cs
- DataGridViewCellLinkedList.cs
- BrowsableAttribute.cs
- ApplicationException.cs
- HtmlInputImage.cs
- RelationshipFixer.cs
- UnsafeNativeMethods.cs
- BamlStream.cs
- WebBrowserEvent.cs
- HttpHandlersSection.cs
- SoapExtensionImporter.cs
- CancellationTokenRegistration.cs
- TypeDescriptionProviderAttribute.cs
- DocumentEventArgs.cs
- RuleProcessor.cs
- WebPartZoneCollection.cs
- HtmlImage.cs
- HtmlEmptyTagControlBuilder.cs
- DivideByZeroException.cs
- GlyphCollection.cs
- CheckedPointers.cs
- PaintEvent.cs
- TraceProvider.cs
- MarkedHighlightComponent.cs
- TemplateComponentConnector.cs
- Dump.cs
- ImportCatalogPart.cs
- VerticalAlignConverter.cs
- AutomationElement.cs
- DrawingContextFlattener.cs
- SettingsProperty.cs
- NativeWrapper.cs
- Ref.cs
- ObsoleteAttribute.cs
- DataSourceCacheDurationConverter.cs
- SafeCryptoHandles.cs
- XmlUrlResolver.cs
- DocumentSequence.cs
- MarkedHighlightComponent.cs
- XmlWriter.cs
- RowCache.cs
- BinaryWriter.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SqlDependencyListener.cs
- Bitmap.cs
- ScriptControlDescriptor.cs
- CompModSwitches.cs