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
- XmlValidatingReaderImpl.cs
- TraceEventCache.cs
- OleAutBinder.cs
- InheritanceRules.cs
- SequenceDesigner.cs
- OdbcEnvironmentHandle.cs
- RootAction.cs
- DisableDpiAwarenessAttribute.cs
- ScrollEvent.cs
- PreloadedPackages.cs
- MonikerUtility.cs
- BamlLocalizabilityResolver.cs
- PerformanceCounterLib.cs
- WebPartRestoreVerb.cs
- RegexInterpreter.cs
- AddInToken.cs
- ObjectHandle.cs
- PassportIdentity.cs
- ExtendedPropertyDescriptor.cs
- ImageList.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- ToolboxItemLoader.cs
- DbProviderFactoriesConfigurationHandler.cs
- ButtonColumn.cs
- WebPartDisplayModeCancelEventArgs.cs
- EmissiveMaterial.cs
- PageContentAsyncResult.cs
- InternalPolicyElement.cs
- SoapClientMessage.cs
- Signature.cs
- NamespaceDisplay.xaml.cs
- XmlSignatureProperties.cs
- TemplateNodeContextMenu.cs
- BindUriHelper.cs
- WpfMemberInvoker.cs
- HttpRequest.cs
- PassportAuthentication.cs
- VirtualDirectoryMappingCollection.cs
- BuiltInPermissionSets.cs
- ClipboardData.cs
- QilInvoke.cs
- StackOverflowException.cs
- ErrorStyle.cs
- FlowDocument.cs
- PersonalizationState.cs
- BinaryUtilClasses.cs
- OdbcCommandBuilder.cs
- ToolboxItemAttribute.cs
- NumericUpDown.cs
- StrongName.cs
- SrgsRulesCollection.cs
- EventItfInfo.cs
- initElementDictionary.cs
- SpeechRecognizer.cs
- DbConnectionOptions.cs
- HttpServerUtilityWrapper.cs
- ValueConversionAttribute.cs
- EncoderExceptionFallback.cs
- RadialGradientBrush.cs
- ConnectivityStatus.cs
- XmlQualifiedName.cs
- EncoderBestFitFallback.cs
- SqlGenericUtil.cs
- TextBoxLine.cs
- ViewBase.cs
- MediaElement.cs
- IERequestCache.cs
- GeneralTransform.cs
- ReaderWriterLockWrapper.cs
- XmlTextEncoder.cs
- ToolStripLabel.cs
- ProcessHostFactoryHelper.cs
- FixedFlowMap.cs
- TransformerConfigurationWizardBase.cs
- UrlAuthorizationModule.cs
- RuleSettingsCollection.cs
- Translator.cs
- BitmapEffectGroup.cs
- ButtonFieldBase.cs
- AuthorizationSection.cs
- HandlerWithFactory.cs
- UnknownWrapper.cs
- MetafileHeader.cs
- FixedSOMTable.cs
- Operand.cs
- ItemsPresenter.cs
- EntityDataSourceContainerNameItem.cs
- XhtmlBasicLiteralTextAdapter.cs
- OptionalColumn.cs
- XPathNavigator.cs
- ComboBox.cs
- MenuItemCollectionEditor.cs
- UnsafeNativeMethods.cs
- DataTransferEventArgs.cs
- MethodBuilderInstantiation.cs
- XNameTypeConverter.cs
- MediaElementAutomationPeer.cs
- HtmlElement.cs
- NotifyIcon.cs
- CursorConverter.cs