Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / HandleInitializationContext.cs / 1305376 / HandleInitializationContext.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Activities
{
using System;
using System.Activities.Runtime;
using System.Diagnostics.CodeAnalysis;
using System.Runtime;
[Fx.Tag.XamlVisible(false)]
public sealed class HandleInitializationContext
{
ActivityExecutor executor;
ActivityInstance scope;
bool isDiposed;
internal HandleInitializationContext(ActivityExecutor executor, ActivityInstance scope)
{
this.executor = executor;
this.scope = scope;
}
internal ActivityInstance OwningActivityInstance
{
get
{
return this.scope;
}
}
internal ActivityExecutor Executor
{
get
{
return this.executor;
}
}
public THandle CreateAndInitializeHandle() where THandle : Handle
{
ThrowIfDisposed();
THandle value = Activator.CreateInstance();
value.Initialize(this);
// If we have a scope, we need to add this new handle to the LocationEnvironment.
if (this.scope != null)
{
this.scope.Environment.AddHandle(value);
}
// otherwise add it to the Executor.
else
{
this.executor.AddHandle(value);
}
return value;
}
public void UninitializeHandle(Handle handle)
{
ThrowIfDisposed();
handle.Uninitialize(this);
}
internal object CreateAndInitializeHandle(Type handleType)
{
Fx.Assert(ActivityUtilities.IsHandle(handleType), "This should only be called with Handle subtypes.");
object value = Activator.CreateInstance(handleType);
((Handle)value).Initialize(this);
// If we have a scope, we need to add this new handle to the LocationEnvironment.
if (this.scope != null)
{
this.scope.Environment.AddHandle((Handle)value);
}
// otherwise add it to the Executor.
else
{
this.executor.AddHandle((Handle)value);
}
return value;
}
internal BookmarkScope CreateAndRegisterBookmarkScope()
{
return this.executor.BookmarkScopeManager.CreateAndRegisterScope(Guid.Empty);
}
internal void UnregisterBookmarkScope(BookmarkScope bookmarkScope)
{
Fx.Assert(bookmarkScope != null, "The sub instance should not equal null.");
this.executor.BookmarkScopeManager.UnregisterScope(bookmarkScope);
}
void ThrowIfDisposed()
{
if (this.isDiposed)
{
throw FxTrace.Exception.AsError(new ObjectDisposedException(SR.HandleInitializationContextDisposed));
}
}
internal void Dispose()
{
this.isDiposed = true;
}
}
}
// 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
- StringSource.cs
- ArgumentValueSerializer.cs
- MessageQueuePermissionAttribute.cs
- Parsers.cs
- ExpressionReplacer.cs
- XhtmlStyleClass.cs
- EncryptedData.cs
- EventLog.cs
- WinFormsSpinner.cs
- SecurityDescriptor.cs
- SpeechEvent.cs
- SignatureDescription.cs
- MdImport.cs
- TypefaceMap.cs
- XmlAttributes.cs
- DesignerActionVerbItem.cs
- QueueSurrogate.cs
- RoleManagerEventArgs.cs
- RewritingSimplifier.cs
- ExpressionPrefixAttribute.cs
- IncrementalHitTester.cs
- StateMachineExecutionState.cs
- ConfigurationValidatorAttribute.cs
- ApplicationDirectoryMembershipCondition.cs
- ExeConfigurationFileMap.cs
- SoapSchemaExporter.cs
- ObjectItemCachedAssemblyLoader.cs
- HttpValueCollection.cs
- RSAOAEPKeyExchangeFormatter.cs
- ScriptingRoleServiceSection.cs
- TransactionFormatter.cs
- RegistrationContext.cs
- PersistenceTypeAttribute.cs
- ClientData.cs
- ReplyAdapterChannelListener.cs
- RowToFieldTransformer.cs
- QilLoop.cs
- ArithmeticLiteral.cs
- DataContext.cs
- TypedDatasetGenerator.cs
- BlockCollection.cs
- WmlPhoneCallAdapter.cs
- RuleAttributes.cs
- ScriptingWebServicesSectionGroup.cs
- DataFormats.cs
- TreeChangeInfo.cs
- While.cs
- RepeaterItemCollection.cs
- TextServicesManager.cs
- sqlstateclientmanager.cs
- externdll.cs
- CachedFontFace.cs
- SelectedDatesCollection.cs
- LiteralText.cs
- XmlWrappingReader.cs
- PageThemeParser.cs
- PropertyInformationCollection.cs
- VolatileResourceManager.cs
- OdbcParameterCollection.cs
- StrokeNodeData.cs
- AsyncResult.cs
- CompositeClientFormatter.cs
- TdsParser.cs
- TextRangeAdaptor.cs
- Renderer.cs
- MenuAutomationPeer.cs
- MultitargetingHelpers.cs
- TextTreeRootTextBlock.cs
- HtmlTableRow.cs
- RepeaterDataBoundAdapter.cs
- Int32Animation.cs
- SessionParameter.cs
- TypeLibConverter.cs
- WorkflowFileItem.cs
- SymmetricCryptoHandle.cs
- MethodImplAttribute.cs
- JsonStringDataContract.cs
- Application.cs
- StorageEndPropertyMapping.cs
- ResXBuildProvider.cs
- input.cs
- XsdDataContractExporter.cs
- TextReader.cs
- DataGridViewRowCollection.cs
- TextElementEnumerator.cs
- RequiredAttributeAttribute.cs
- Literal.cs
- XmlObjectSerializerContext.cs
- Debug.cs
- DbCommandTree.cs
- EntityDataSourceDataSelection.cs
- FixedTextContainer.cs
- NegationPusher.cs
- ThreadWorkerController.cs
- ComponentCollection.cs
- EventLogTraceListener.cs
- InitializerFacet.cs
- PenLineCapValidation.cs
- Int32Animation.cs
- EntityDescriptor.cs