Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------- // 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 IDictionary bag) { 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
- ListBoxItemAutomationPeer.cs
- MimeMapping.cs
- RelatedPropertyManager.cs
- Polygon.cs
- SystemIPv6InterfaceProperties.cs
- NetworkInformationPermission.cs
- XamlHostingSection.cs
- WebResourceUtil.cs
- DateTimeFormatInfo.cs
- HostExecutionContextManager.cs
- ComponentEditorPage.cs
- RoleManagerSection.cs
- ScrollViewer.cs
- EpmContentDeSerializerBase.cs
- CommonProperties.cs
- TextReader.cs
- DataDesignUtil.cs
- ConfigurationLockCollection.cs
- Switch.cs
- ButtonBaseAutomationPeer.cs
- DetailsView.cs
- WindowsHyperlink.cs
- PermissionSetTriple.cs
- BinaryKeyIdentifierClause.cs
- PointHitTestResult.cs
- COM2PropertyDescriptor.cs
- _NativeSSPI.cs
- TryCatchDesigner.xaml.cs
- CodeDOMUtility.cs
- InputElement.cs
- UriTemplateMatchException.cs
- BlockUIContainer.cs
- TemplateApplicationHelper.cs
- ProjectedWrapper.cs
- AuthenticationSection.cs
- ReachUIElementCollectionSerializerAsync.cs
- DynamicILGenerator.cs
- WebPartCollection.cs
- PageEventArgs.cs
- UnsafeNativeMethods.cs
- BindingCollection.cs
- XmlTextAttribute.cs
- TraceHandlerErrorFormatter.cs
- Vector3DCollectionValueSerializer.cs
- HtmlForm.cs
- CompositeTypefaceMetrics.cs
- SharedStatics.cs
- HttpContext.cs
- Line.cs
- RenamedEventArgs.cs
- MonikerUtility.cs
- CompensateDesigner.cs
- DynamicILGenerator.cs
- SettingsPropertyValueCollection.cs
- ListItemConverter.cs
- ToolStripItemTextRenderEventArgs.cs
- ThicknessAnimation.cs
- DataGridViewRowStateChangedEventArgs.cs
- XhtmlBasicValidationSummaryAdapter.cs
- CodeStatementCollection.cs
- VirtualDirectoryMapping.cs
- CodePageUtils.cs
- AppDomain.cs
- DetailsViewDeletedEventArgs.cs
- IsolatedStoragePermission.cs
- ActivityExecutionContext.cs
- StandardTransformFactory.cs
- SQLBytes.cs
- ToggleButtonAutomationPeer.cs
- RadioButtonStandardAdapter.cs
- WindowHideOrCloseTracker.cs
- XmlEncoding.cs
- ToolStripMenuItem.cs
- DataControlFieldCollection.cs
- FormatException.cs
- MetafileHeaderWmf.cs
- CompressionTransform.cs
- LazyTextWriterCreator.cs
- ComplexLine.cs
- ChineseLunisolarCalendar.cs
- XmlDataDocument.cs
- MouseActionConverter.cs
- XmlSchemaComplexContentRestriction.cs
- CertificateManager.cs
- ReflectionUtil.cs
- StringValidator.cs
- MailAddress.cs
- SqlParameter.cs
- XmlBinaryReader.cs
- XmlSchemaObjectCollection.cs
- SoapFormatter.cs
- LayoutTableCell.cs
- IInstanceTable.cs
- AddingNewEventArgs.cs
- DesignerActionGlyph.cs
- PageCache.cs
- MaskedTextBoxDesignerActionList.cs
- TextRunCacheImp.cs
- StringWriter.cs
- ResourceDescriptionAttribute.cs