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
- SecureStringHasher.cs
- ProxyWebPartConnectionCollection.cs
- DataSourceCache.cs
- SurrogateEncoder.cs
- SimpleTypeResolver.cs
- TriggerActionCollection.cs
- keycontainerpermission.cs
- ThemeDirectoryCompiler.cs
- ExpressionEditorAttribute.cs
- XmlSchemaException.cs
- WmiInstallComponent.cs
- APCustomTypeDescriptor.cs
- PageVisual.cs
- PagesSection.cs
- Verify.cs
- PointAnimationUsingKeyFrames.cs
- TypographyProperties.cs
- MemberPath.cs
- HtmlTernaryTree.cs
- TemplateInstanceAttribute.cs
- FixedPageProcessor.cs
- SqlTrackingService.cs
- AppliedDeviceFiltersDialog.cs
- Variable.cs
- Rectangle.cs
- ContainerParaClient.cs
- ListenerAdaptersInstallComponent.cs
- BezierSegment.cs
- NewItemsContextMenuStrip.cs
- CompensableActivity.cs
- ConnectionManagementSection.cs
- SuppressMessageAttribute.cs
- ModuleElement.cs
- Oci.cs
- FreezableDefaultValueFactory.cs
- OrElse.cs
- CookieParameter.cs
- ReadOnlyDictionary.cs
- ThemeableAttribute.cs
- PieceNameHelper.cs
- WebPartsSection.cs
- documentation.cs
- CachedBitmap.cs
- Console.cs
- HttpWriter.cs
- ClientUIRequest.cs
- Int16.cs
- Crc32.cs
- HttpRequestWrapper.cs
- ParallelActivityDesigner.cs
- VariantWrapper.cs
- LookupTables.cs
- XmlTypeMapping.cs
- QilCloneVisitor.cs
- uribuilder.cs
- RuntimeVariablesExpression.cs
- CodeTypeReferenceSerializer.cs
- Comparer.cs
- DataColumn.cs
- WebPartVerbCollection.cs
- ModifierKeysValueSerializer.cs
- HttpContextServiceHost.cs
- ErrorHandlingAcceptor.cs
- OleDbReferenceCollection.cs
- FutureFactory.cs
- PopupControlService.cs
- InstanceKeyNotReadyException.cs
- RectIndependentAnimationStorage.cs
- BadImageFormatException.cs
- WhitespaceRule.cs
- MetadataFile.cs
- BoolExpression.cs
- BinaryWriter.cs
- ListView.cs
- WmiEventSink.cs
- TwoPhaseCommit.cs
- DefaultBindingPropertyAttribute.cs
- ToolStripActionList.cs
- ProgressPage.cs
- RIPEMD160.cs
- ToolBarButton.cs
- MethodRental.cs
- Property.cs
- CustomErrorCollection.cs
- IMembershipProvider.cs
- DaylightTime.cs
- InvalidOperationException.cs
- Translator.cs
- LoginUtil.cs
- MSAANativeProvider.cs
- ToolStripLabel.cs
- basenumberconverter.cs
- StrongTypingException.cs
- BypassElement.cs
- ViewGenerator.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- XmlElementAttributes.cs
- CodeChecksumPragma.cs
- Menu.cs
- FileUtil.cs