Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Hosting / AddInController.cs / 1305376 / AddInController.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: AddInController ** ** Purpose: Allows you to shut down an add-in, which may unload ** an AppDomain or kill an out-of-process add-in. ** ===========================================================*/ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Reflection; using System.Runtime.ConstrainedExecution; using System.Runtime.Remoting; using System.Runtime.Remoting.Lifetime; using System.Runtime.Serialization; using System.Security.Permissions; using System.Security; using System.Diagnostics; using System.AddIn.Contract; using System.AddIn.Pipeline; using System.Diagnostics.Contracts; namespace System.AddIn.Hosting { // Wrapper on AddInControllerImpl so that a ref count is kept on the Contract // keeping the addin alive while an AddInController object is alive in the host. public sealed class AddInController { private AddInControllerImpl _impl; // keep the addin alive while the controller is alive [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification="Needed to prevent remoting failures")] private Object _hostViewOfAddIn; // Prevent the addin domain from being torn down while there is a controller still alive when, for example, // Dispose is called on the HVA and the hostAdapter releases its LifetimeToken. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification="Needed for finalizer behavior")] private ContractHandle _contractHandle; internal AddInController(AddInControllerImpl impl, Object hostViewOfAddIn, ContractHandle contractHandle) { System.Diagnostics.Contracts.Contract.Requires(impl != null); _impl = impl; _hostViewOfAddIn = hostViewOfAddIn; _contractHandle = contractHandle; } // Takes a host add-in view (HAV) and maps that to an add-in controller. public static AddInController GetAddInController(Object addIn) { return AddInControllerImpl.GetAddInController(addIn); } [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] public void Shutdown() { _impl.Shutdown(); } // This will not be usable for OOP scenarios. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="AppDomain")] public AppDomain AppDomain { get { return _impl.AppDomain; } } public AddInToken Token { get { return _impl.Token; } } public AddInEnvironment AddInEnvironment { get { return _impl.AddInEnvironment; } } internal AddInControllerImpl AddInControllerImpl { get { return _impl; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: AddInController ** ** Purpose: Allows you to shut down an add-in, which may unload ** an AppDomain or kill an out-of-process add-in. ** ===========================================================*/ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Reflection; using System.Runtime.ConstrainedExecution; using System.Runtime.Remoting; using System.Runtime.Remoting.Lifetime; using System.Runtime.Serialization; using System.Security.Permissions; using System.Security; using System.Diagnostics; using System.AddIn.Contract; using System.AddIn.Pipeline; using System.Diagnostics.Contracts; namespace System.AddIn.Hosting { // Wrapper on AddInControllerImpl so that a ref count is kept on the Contract // keeping the addin alive while an AddInController object is alive in the host. public sealed class AddInController { private AddInControllerImpl _impl; // keep the addin alive while the controller is alive [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification="Needed to prevent remoting failures")] private Object _hostViewOfAddIn; // Prevent the addin domain from being torn down while there is a controller still alive when, for example, // Dispose is called on the HVA and the hostAdapter releases its LifetimeToken. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification="Needed for finalizer behavior")] private ContractHandle _contractHandle; internal AddInController(AddInControllerImpl impl, Object hostViewOfAddIn, ContractHandle contractHandle) { System.Diagnostics.Contracts.Contract.Requires(impl != null); _impl = impl; _hostViewOfAddIn = hostViewOfAddIn; _contractHandle = contractHandle; } // Takes a host add-in view (HAV) and maps that to an add-in controller. public static AddInController GetAddInController(Object addIn) { return AddInControllerImpl.GetAddInController(addIn); } [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] public void Shutdown() { _impl.Shutdown(); } // This will not be usable for OOP scenarios. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="AppDomain")] public AppDomain AppDomain { get { return _impl.AppDomain; } } public AddInToken Token { get { return _impl.Token; } } public AddInEnvironment AddInEnvironment { get { return _impl.AddInEnvironment; } } internal AddInControllerImpl AddInControllerImpl { get { return _impl; } } } } // 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
- StorageAssociationTypeMapping.cs
- MappingException.cs
- TextAnchor.cs
- ElementFactory.cs
- AnnotationAuthorChangedEventArgs.cs
- AvtEvent.cs
- BamlRecordHelper.cs
- ApplicationGesture.cs
- VirtualPathUtility.cs
- TakeOrSkipWhileQueryOperator.cs
- HelpEvent.cs
- AggregationMinMaxHelpers.cs
- CompilerScopeManager.cs
- translator.cs
- FormParameter.cs
- XmlComment.cs
- TextContainer.cs
- SafeArrayTypeMismatchException.cs
- DtdParser.cs
- RectangleGeometry.cs
- GlyphRunDrawing.cs
- PropertyMapper.cs
- EventProviderClassic.cs
- TimeoutException.cs
- XhtmlBasicCommandAdapter.cs
- ManipulationCompletedEventArgs.cs
- RefreshResponseInfo.cs
- WebServiceParameterData.cs
- CompModSwitches.cs
- SerializationTrace.cs
- ProfileSettingsCollection.cs
- ExpandSegmentCollection.cs
- EntityWithChangeTrackerStrategy.cs
- _ChunkParse.cs
- ReferenceSchema.cs
- TransactionBridgeSection.cs
- ISAPIWorkerRequest.cs
- XpsS0ValidatingLoader.cs
- TableRow.cs
- Typeface.cs
- XmlSchemaAnnotation.cs
- ScaleTransform.cs
- ArrayHelper.cs
- EditingScopeUndoUnit.cs
- Internal.cs
- propertytag.cs
- XmlDataSource.cs
- Pen.cs
- StringWriter.cs
- MaskedTextBoxDesigner.cs
- ScriptReference.cs
- WebPartManager.cs
- HtmlInputButton.cs
- DocumentPageViewAutomationPeer.cs
- DefaultPropertyAttribute.cs
- EntitySetDataBindingList.cs
- IdentityModelDictionary.cs
- RemoteWebConfigurationHostServer.cs
- Pts.cs
- ChannelOptions.cs
- OdbcEnvironment.cs
- HwndAppCommandInputProvider.cs
- PagePropertiesChangingEventArgs.cs
- DataRelation.cs
- HijriCalendar.cs
- Int32Storage.cs
- ElementProxy.cs
- ModuleConfigurationInfo.cs
- RSAPKCS1SignatureDeformatter.cs
- BaseCAMarshaler.cs
- ListViewItem.cs
- FileDialog.cs
- ApplicationDirectoryMembershipCondition.cs
- SafeBitVector32.cs
- SessionStateSection.cs
- Misc.cs
- AsyncOperationManager.cs
- ServiceModelConfigurationElementCollection.cs
- LogReserveAndAppendState.cs
- MatrixCamera.cs
- BufferedWebEventProvider.cs
- PermissionListSet.cs
- AsyncOperationContext.cs
- DataGridTableStyleMappingNameEditor.cs
- ParseChildrenAsPropertiesAttribute.cs
- IISUnsafeMethods.cs
- DebugView.cs
- DirectionalLight.cs
- TextElementEnumerator.cs
- log.cs
- CheckBox.cs
- DrawingCollection.cs
- xmlNames.cs
- CompiledXpathExpr.cs
- OleDbRowUpdatingEvent.cs
- ResourceDictionary.cs
- ControlBuilderAttribute.cs
- SqlDataAdapter.cs
- QueryOperationResponseOfT.cs
- NameSpaceExtractor.cs