Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Hosting / AddInEnvironment.cs / 1305376 / AddInEnvironment.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: AddInEnvironment ** ** Purpose: Abstraction representing an AppDomain, Process and Machine ** ===========================================================*/ using System; using System.AddIn.Contract; using System.Runtime.Remoting; using System.Security; using System.Security.Permissions; using System.Diagnostics.Contracts; namespace System.AddIn.Hosting { public sealed class AddInEnvironment { private AddInProcess _process; // for in process we have an appdomain. private AppDomain _appDomain; // for out-of-process we have this. private AddInServerWorker _addInServerWorker; [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="appDomain")] public AddInEnvironment(AppDomain appDomain) { if (appDomain == null) throw new ArgumentNullException("appDomain"); System.Diagnostics.Contracts.Contract.EndContractBlock(); if (appDomain != AppDomain.CurrentDomain && !Utils.HasFullTrust()) { throw new SecurityException(Res.PartialTrustCannotActivate); } _appDomain = appDomain; _process = AddInProcess.Current; } // This version is used when we have just created a new appdomain for this addin. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="appDomain")] internal AddInEnvironment(AppDomain appDomain, bool skipDomainCheck) { if (appDomain == null) throw new ArgumentNullException("appDomain"); System.Diagnostics.Contracts.Contract.EndContractBlock(); _appDomain = appDomain; _process = AddInProcess.Current; } internal AddInEnvironment(AddInProcess process, AddInServerWorker worker) { _addInServerWorker = worker; _process = process; } public AddInProcess Process { get { return _process; } } internal AppDomain AppDomain { get { return _appDomain; } } internal AddInServerWorker AddInServerWorker { get { return _addInServerWorker; } } //// [System.Security.SecuritySafeCritical] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Justification = "This is a SecurityRules.Level1 assembly, in which this rule is being incorrectly applied")] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2128:SecurityTransparentCodeShouldNotAssert", Justification = "This is a SecurityRules.Level1 assembly, in which this rule is being incorrectly applied")] internal void UnloadAppDomain() { if (Process.IsCurrentProcess) { SecurityPermission permission = new SecurityPermission(SecurityPermissionFlag.ControlAppDomain); permission.Assert(); AppDomain.Unload(AppDomain); CodeAccessPermission.RevertAssert(); } else { try { _addInServerWorker.UnloadAppDomain(); } catch (AppDomainUnloadedException) { } catch (RemotingException) { } } } } } // 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
- MDIWindowDialog.cs
- WsatEtwTraceListener.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- JpegBitmapEncoder.cs
- TextEditorDragDrop.cs
- ServiceDesigner.xaml.cs
- HttpVersion.cs
- ByteStreamBufferedMessageData.cs
- MimeParameters.cs
- FixedSOMFixedBlock.cs
- EDesignUtil.cs
- SendingRequestEventArgs.cs
- unitconverter.cs
- Pair.cs
- RuleProcessor.cs
- TextEditorLists.cs
- MetadataStore.cs
- OneOf.cs
- DataControlField.cs
- SafeArrayRankMismatchException.cs
- TableLayoutPanelCellPosition.cs
- TransactionBridge.cs
- FrameworkTextComposition.cs
- WorkflowShape.cs
- WindowsListViewGroupHelper.cs
- CapabilitiesUse.cs
- XmlWhitespace.cs
- EntityDataSourceWizardForm.cs
- HttpCacheVaryByContentEncodings.cs
- AmbientLight.cs
- InternalReceiveMessage.cs
- DataSourceCollectionBase.cs
- BlockCollection.cs
- HttpEncoderUtility.cs
- OdbcConnectionPoolProviderInfo.cs
- ConfigurationValue.cs
- GraphicsContainer.cs
- CodeDirectionExpression.cs
- EventRecordWrittenEventArgs.cs
- MenuRendererStandards.cs
- CompilationSection.cs
- WinFormsSecurity.cs
- PropertyItemInternal.cs
- DataGridTextBox.cs
- SvcMapFile.cs
- Win32Exception.cs
- ExtractorMetadata.cs
- DataSourceXmlTextReader.cs
- SqlTriggerAttribute.cs
- SafeTokenHandle.cs
- BinHexEncoder.cs
- CollectionAdapters.cs
- Symbol.cs
- Int32Converter.cs
- Setter.cs
- TypeRestriction.cs
- MatrixTransform.cs
- HashCodeCombiner.cs
- UIElementPropertyUndoUnit.cs
- BooleanStorage.cs
- MenuAutomationPeer.cs
- SafeCryptContextHandle.cs
- HtmlElementEventArgs.cs
- EventProviderWriter.cs
- Query.cs
- ViewStateException.cs
- PageThemeBuildProvider.cs
- Label.cs
- RelatedView.cs
- ClientTarget.cs
- AddInToken.cs
- ProfileModule.cs
- CellParaClient.cs
- Int64AnimationUsingKeyFrames.cs
- FontStyleConverter.cs
- KeyToListMap.cs
- DecimalStorage.cs
- OpenTypeCommon.cs
- AspNetHostingPermission.cs
- ClientApiGenerator.cs
- Serializer.cs
- BooleanConverter.cs
- TextServicesLoader.cs
- BStrWrapper.cs
- FragmentQuery.cs
- AlternateViewCollection.cs
- XmlSchemaObject.cs
- ReadOnlyPropertyMetadata.cs
- XmlMemberMapping.cs
- RadioButton.cs
- GlobalProxySelection.cs
- LocalFileSettingsProvider.cs
- MetadataPropertyAttribute.cs
- XmlSchemaInclude.cs
- PolicyLevel.cs
- SqlDataSourceDesigner.cs
- InArgument.cs
- TraceSection.cs
- HttpCookieCollection.cs
- StructuredProperty.cs