Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / DurableInstancing / InstanceKeyCollisionException.cs / 1305376 / InstanceKeyCollisionException.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.Runtime.DurableInstancing
{
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Serialization;
using System.Security;
using System.Xml.Linq;
[Serializable]
public class InstanceKeyCollisionException : InstancePersistenceCommandException
{
const string ConflictingInstanceIdName = "instancePersistenceConflictingInstanceId";
const string InstanceKeyName = "instancePersistenceInstanceKey";
public InstanceKeyCollisionException()
: this(SRCore.KeyCollisionDefault, null)
{
}
public InstanceKeyCollisionException(string message)
: this(message, null)
{
}
public InstanceKeyCollisionException(string message, Exception innerException)
: base(message, innerException)
{
}
public InstanceKeyCollisionException(XName commandName, Guid instanceId, InstanceKey instanceKey, Guid conflictingInstanceId)
: this(commandName, instanceId, instanceKey, conflictingInstanceId, null)
{
}
public InstanceKeyCollisionException(XName commandName, Guid instanceId, InstanceKey instanceKey, Guid conflictingInstanceId, Exception innerException)
: this(commandName, instanceId, instanceKey, conflictingInstanceId, ToMessage(instanceId, instanceKey, conflictingInstanceId), innerException)
{
}
public InstanceKeyCollisionException(XName commandName, Guid instanceId, InstanceKey instanceKey, Guid conflictingInstanceId, string message, Exception innerException)
: base(commandName, instanceId, message, innerException)
{
ConflictingInstanceId = conflictingInstanceId;
InstanceKey = instanceKey;
}
[SecurityCritical]
protected InstanceKeyCollisionException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
ConflictingInstanceId = (Guid) info.GetValue(ConflictingInstanceIdName, typeof(Guid));
Guid guid = (Guid) info.GetValue(InstanceKeyName, typeof(Guid));
InstanceKey = guid == Guid.Empty ? null : new InstanceKey(guid);
}
public Guid ConflictingInstanceId { get; private set; }
public InstanceKey InstanceKey { get; private set; }
[Fx.Tag.SecurityNote(Critical = "Overrides critical inherited method")]
[SecurityCritical]
[SuppressMessage(FxCop.Category.Security, FxCop.Rule.SecureGetObjectDataOverrides,
Justification = "Method is SecurityCritical")]
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
info.AddValue(ConflictingInstanceIdName, ConflictingInstanceId, typeof(Guid));
info.AddValue(InstanceKeyName, (InstanceKey != null && InstanceKey.IsValid) ? InstanceKey.Value : Guid.Empty, typeof(Guid));
}
static string ToMessage(Guid instanceId, InstanceKey instanceKey, Guid conflictingInstanceId)
{
if (instanceKey != null && instanceKey.IsValid)
{
if (instanceId != Guid.Empty && conflictingInstanceId != Guid.Empty)
{
return SRCore.KeyCollisionSpecific(instanceId, instanceKey.Value, conflictingInstanceId);
}
return SRCore.KeyCollisionSpecificKeyOnly(instanceKey.Value);
}
return SRCore.KeyCollisionDefault;
}
}
}
// 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
- ToolStripOverflowButton.cs
- Point3D.cs
- EdmPropertyAttribute.cs
- ListBoxDesigner.cs
- DbMetaDataColumnNames.cs
- WorkflowWebService.cs
- CodeDomComponentSerializationService.cs
- remotingproxy.cs
- RSAPKCS1SignatureDeformatter.cs
- ObjectStateFormatter.cs
- Condition.cs
- CombinedTcpChannel.cs
- NetworkInformationPermission.cs
- RegexTypeEditor.cs
- MenuScrollingVisibilityConverter.cs
- _ConnectionGroup.cs
- GridPattern.cs
- MetadataException.cs
- HMACSHA256.cs
- SectionXmlInfo.cs
- ResumeStoryboard.cs
- HttpChannelHelper.cs
- Geometry.cs
- ContextQuery.cs
- PropertyInfoSet.cs
- XmlArrayAttribute.cs
- ResourceContainer.cs
- FontDriver.cs
- TextPenaltyModule.cs
- BaseServiceProvider.cs
- StringKeyFrameCollection.cs
- FormViewDeletedEventArgs.cs
- SoapHeaders.cs
- mda.cs
- ThreadStateException.cs
- CollectionExtensions.cs
- XmlSerializationWriter.cs
- RelativeSource.cs
- EmptyEnumerable.cs
- SecurityRuntime.cs
- XmlSchemaExporter.cs
- AccessedThroughPropertyAttribute.cs
- TextServicesLoader.cs
- ByteStack.cs
- StickyNoteAnnotations.cs
- BitmapEffectvisualstate.cs
- SafeFindHandle.cs
- SerialErrors.cs
- Token.cs
- odbcmetadatacollectionnames.cs
- StubHelpers.cs
- SafeLibraryHandle.cs
- ElementAction.cs
- XmlNamespaceManager.cs
- UnmanagedMemoryStream.cs
- LineGeometry.cs
- CodeMemberProperty.cs
- InputProcessorProfiles.cs
- FillRuleValidation.cs
- COM2ComponentEditor.cs
- ReaderWriterLockWrapper.cs
- OwnerDrawPropertyBag.cs
- SubqueryRules.cs
- GeometryHitTestResult.cs
- DependencyObjectProvider.cs
- ListItem.cs
- CodeTypeOfExpression.cs
- GC.cs
- XmlDataDocument.cs
- MeasurementDCInfo.cs
- StorageMappingFragment.cs
- TextFormatter.cs
- MarginsConverter.cs
- SingleTagSectionHandler.cs
- ToolStripDropDownClosedEventArgs.cs
- HttpModuleActionCollection.cs
- AppDomain.cs
- DeclaredTypeValidator.cs
- XmlSchemaRedefine.cs
- CultureTable.cs
- JsonWriterDelegator.cs
- ManagedIStream.cs
- FileLevelControlBuilderAttribute.cs
- PaintValueEventArgs.cs
- DataRelationCollection.cs
- HttpRequestTraceRecord.cs
- FixedPosition.cs
- TextBoxRenderer.cs
- XamlPointCollectionSerializer.cs
- DataGridViewComponentPropertyGridSite.cs
- Byte.cs
- BitmapFrame.cs
- CursorConverter.cs
- RedBlackList.cs
- SortKey.cs
- ParallelTimeline.cs
- SqlTopReducer.cs
- SettingsPropertyIsReadOnlyException.cs
- HttpWebResponse.cs
- TextMarkerSource.cs