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
- XmlSchemaAny.cs
- _Rfc2616CacheValidators.cs
- GroupItemAutomationPeer.cs
- PrePostDescendentsWalker.cs
- SubtreeProcessor.cs
- XPathNodeHelper.cs
- ContractUtils.cs
- Message.cs
- Page.cs
- AttributeTableBuilder.cs
- Panel.cs
- AlphaSortedEnumConverter.cs
- PanningMessageFilter.cs
- ScrollEventArgs.cs
- CallSiteBinder.cs
- DefaultBindingPropertyAttribute.cs
- TextTreeExtractElementUndoUnit.cs
- TextServicesLoader.cs
- SystemResourceHost.cs
- ScriptResourceAttribute.cs
- RankException.cs
- HtmlTableRowCollection.cs
- AnimationTimeline.cs
- TcpClientSocketManager.cs
- SchemaCollectionPreprocessor.cs
- NewExpression.cs
- ImportFileRequest.cs
- MarginsConverter.cs
- DiagnosticsElement.cs
- entityreference_tresulttype.cs
- EndEvent.cs
- XmlSchemaSimpleTypeRestriction.cs
- PrtTicket_Public_Simple.cs
- ParameterReplacerVisitor.cs
- filewebresponse.cs
- DesignerHelpers.cs
- DuplicateWaitObjectException.cs
- PageThemeParser.cs
- InputElement.cs
- Page.cs
- BinaryConverter.cs
- IsolationInterop.cs
- ProgressBarBrushConverter.cs
- DescriptionAttribute.cs
- UxThemeWrapper.cs
- Visitor.cs
- DataGridHelper.cs
- Profiler.cs
- XmlCodeExporter.cs
- TemplateBindingExtension.cs
- SettingsPropertyNotFoundException.cs
- StatusBar.cs
- DataQuery.cs
- TextRangeEdit.cs
- FacetChecker.cs
- _SslStream.cs
- WindowsToolbarAsMenu.cs
- MissingMemberException.cs
- DataSourceGroupCollection.cs
- CaretElement.cs
- DataGridViewRowHeaderCell.cs
- JoinCqlBlock.cs
- DelegatedStream.cs
- ConcurrentDictionary.cs
- ServiceDescription.cs
- RemoteWebConfigurationHost.cs
- StylusPointPropertyInfoDefaults.cs
- SettingsContext.cs
- ToolboxItem.cs
- SendSecurityHeaderElement.cs
- CodeAccessSecurityEngine.cs
- LabelLiteral.cs
- WS2007FederationHttpBinding.cs
- RsaSecurityTokenAuthenticator.cs
- WebPartActionVerb.cs
- FocusManager.cs
- DesignerWebPartChrome.cs
- MemoryMappedFile.cs
- SByteConverter.cs
- SrgsText.cs
- LogExtentCollection.cs
- DataTransferEventArgs.cs
- XmlSchemaChoice.cs
- ItemsPresenter.cs
- AnyAllSearchOperator.cs
- SoundPlayer.cs
- Identifier.cs
- ColorDialog.cs
- TraceProvider.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ContractReference.cs
- PostBackTrigger.cs
- PageParserFilter.cs
- SemaphoreFullException.cs
- ConnectionPointCookie.cs
- MergablePropertyAttribute.cs
- SecurityPolicySection.cs
- _Win32.cs
- ExpressionConverter.cs
- counter.cs