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
- XmlTextReaderImpl.cs
- DocumentStatusResources.cs
- OperatorExpressions.cs
- ResetableIterator.cs
- BaseParaClient.cs
- XmlnsPrefixAttribute.cs
- ExtendedPropertiesHandler.cs
- CompilerCollection.cs
- StreamInfo.cs
- GlobalId.cs
- DataGridHeaderBorder.cs
- StackOverflowException.cs
- Type.cs
- ObjectCloneHelper.cs
- ColorKeyFrameCollection.cs
- arabicshape.cs
- ShortcutKeysEditor.cs
- FormViewPageEventArgs.cs
- HttpTransportSecurity.cs
- SocketStream.cs
- Dictionary.cs
- SqlCachedBuffer.cs
- QilNode.cs
- BrowserCapabilitiesFactory.cs
- StyleCollection.cs
- ByteStreamMessage.cs
- InputLanguageEventArgs.cs
- StylusCaptureWithinProperty.cs
- NativeMethods.cs
- OledbConnectionStringbuilder.cs
- Descriptor.cs
- ReliabilityContractAttribute.cs
- HttpWriter.cs
- RectKeyFrameCollection.cs
- ApplicationBuildProvider.cs
- AssociationSet.cs
- Listen.cs
- ClientProxyGenerator.cs
- Vector3DKeyFrameCollection.cs
- ConstructorNeedsTagAttribute.cs
- RuleRef.cs
- MemberRelationshipService.cs
- PreservationFileWriter.cs
- ComponentResourceKeyConverter.cs
- OdbcReferenceCollection.cs
- RequiredFieldValidator.cs
- BinaryExpression.cs
- DataViewSetting.cs
- ManagementEventWatcher.cs
- ReflectionServiceProvider.cs
- DataObject.cs
- Thread.cs
- PopupEventArgs.cs
- BorderGapMaskConverter.cs
- WindowsIdentity.cs
- UidPropertyAttribute.cs
- SizeValueSerializer.cs
- BindingExpressionBase.cs
- UrlMapping.cs
- basecomparevalidator.cs
- RepeatBehaviorConverter.cs
- NameValueFileSectionHandler.cs
- Error.cs
- SafeSecurityHandles.cs
- TransactionState.cs
- EllipseGeometry.cs
- AppLevelCompilationSectionCache.cs
- ClientUtils.cs
- IgnoreSection.cs
- HttpApplication.cs
- Geometry3D.cs
- ToolCreatedEventArgs.cs
- DbFunctionCommandTree.cs
- HashCodeCombiner.cs
- FormViewInsertEventArgs.cs
- DataTablePropertyDescriptor.cs
- SqlNodeAnnotations.cs
- PictureBoxDesigner.cs
- Section.cs
- ModifierKeysConverter.cs
- XmlTypeMapping.cs
- CodeDomConfigurationHandler.cs
- ManipulationStartedEventArgs.cs
- TerminatorSinks.cs
- ObjectContext.cs
- XmlSchemaSimpleContentExtension.cs
- DataSourceBooleanViewSchemaConverter.cs
- PriorityBindingExpression.cs
- ReadOnlyNameValueCollection.cs
- DbExpressionVisitor.cs
- RemoteWebConfigurationHost.cs
- Native.cs
- PointValueSerializer.cs
- NavigationProgressEventArgs.cs
- SchemaNamespaceManager.cs
- ButtonChrome.cs
- RectAnimationClockResource.cs
- TriggerCollection.cs
- IpcClientChannel.cs
- BuiltInPermissionSets.cs