Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Line.cs
- SessionStateSection.cs
- BreakRecordTable.cs
- SuppressIldasmAttribute.cs
- HttpResponseBase.cs
- ConfigurationStrings.cs
- PropertySourceInfo.cs
- PointAnimationClockResource.cs
- TypeNameConverter.cs
- ChangePassword.cs
- DictionaryManager.cs
- DeploymentSection.cs
- Camera.cs
- PermissionSetEnumerator.cs
- UrlMappingsModule.cs
- assertwrapper.cs
- ObjectDataSourceEventArgs.cs
- ErrorHandlerModule.cs
- Graphics.cs
- DataTrigger.cs
- GlyphInfoList.cs
- HtmlInputRadioButton.cs
- RotateTransform3D.cs
- LinearKeyFrames.cs
- ArraySubsetEnumerator.cs
- ReturnType.cs
- mansign.cs
- CodeTypeOfExpression.cs
- WmlValidationSummaryAdapter.cs
- CanonicalXml.cs
- Site.cs
- SqlUtils.cs
- ReflectPropertyDescriptor.cs
- Sequence.cs
- ContainerActivationHelper.cs
- SQLBytes.cs
- TouchFrameEventArgs.cs
- ExpandoObject.cs
- ComponentCollection.cs
- DeploymentExceptionMapper.cs
- XmlNamespaceDeclarationsAttribute.cs
- CommentEmitter.cs
- KnownTypeHelper.cs
- _SingleItemRequestCache.cs
- GB18030Encoding.cs
- formatter.cs
- StorageFunctionMapping.cs
- GetLastErrorDetailsRequest.cs
- URI.cs
- BinaryConverter.cs
- ControlType.cs
- UnsafeNativeMethods.cs
- CodePrimitiveExpression.cs
- WebServiceClientProxyGenerator.cs
- XmlNodeReader.cs
- SqlProviderServices.cs
- RemoveStoryboard.cs
- HtmlLink.cs
- OpenTypeCommon.cs
- RepeaterItemEventArgs.cs
- AttributeUsageAttribute.cs
- SqlCacheDependency.cs
- TimeZoneInfo.cs
- ProxyFragment.cs
- BinaryUtilClasses.cs
- StrongName.cs
- ProfileInfo.cs
- MemberRelationshipService.cs
- EntityDesignerUtils.cs
- QueryHandler.cs
- MergeFailedEvent.cs
- TextParagraph.cs
- ProcessRequestAsyncResult.cs
- ModelItemImpl.cs
- WindowsPrincipal.cs
- EpmTargetPathSegment.cs
- IDReferencePropertyAttribute.cs
- CodeMemberEvent.cs
- XamlSerializer.cs
- UnsafePeerToPeerMethods.cs
- AxisAngleRotation3D.cs
- DetailsViewUpdatedEventArgs.cs
- StylusDownEventArgs.cs
- XmlElementCollection.cs
- IPAddressCollection.cs
- Bezier.cs
- ViewValidator.cs
- RsaElement.cs
- Vars.cs
- RegisteredExpandoAttribute.cs
- EmptyWorkItem.cs
- FileSystemEventArgs.cs
- QuaternionValueSerializer.cs
- WindowsProgressbar.cs
- PlaceHolder.cs
- InputManager.cs
- Symbol.cs
- FilterableAttribute.cs
- CollectionTraceRecord.cs
- AsyncDataRequest.cs