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
- ChtmlCommandAdapter.cs
- SelectionGlyph.cs
- ListViewItem.cs
- DataSourceConverter.cs
- SqlNotificationEventArgs.cs
- DocumentEventArgs.cs
- SettingsAttributeDictionary.cs
- FileLevelControlBuilderAttribute.cs
- WebBrowserNavigatingEventHandler.cs
- Part.cs
- ObjectConverter.cs
- MissingMethodException.cs
- WizardPanelChangingEventArgs.cs
- PointAnimationUsingKeyFrames.cs
- ProcessHostMapPath.cs
- DrawingBrush.cs
- DiscreteKeyFrames.cs
- columnmapkeybuilder.cs
- FrameDimension.cs
- WebScriptMetadataMessageEncoderFactory.cs
- HttpListenerRequestUriBuilder.cs
- WindowsListViewItemStartMenu.cs
- EncryptedData.cs
- XmlTextReader.cs
- XsltCompileContext.cs
- DiscardableAttribute.cs
- ListDictionary.cs
- ping.cs
- Debug.cs
- figurelength.cs
- ProviderCommandInfoUtils.cs
- GridView.cs
- UserNamePasswordValidator.cs
- RootAction.cs
- SoapProtocolReflector.cs
- SafeProcessHandle.cs
- DataGridSortCommandEventArgs.cs
- FormatterConverter.cs
- Rotation3D.cs
- HMACSHA256.cs
- TreeViewEvent.cs
- WCFModelStrings.Designer.cs
- DesignColumn.cs
- NativeMethods.cs
- CheckBoxList.cs
- TdsParserStateObject.cs
- GradientPanel.cs
- TokenDescriptor.cs
- FontSource.cs
- NullableDecimalMinMaxAggregationOperator.cs
- XmlEntity.cs
- SafeNativeMethodsMilCoreApi.cs
- SourceChangedEventArgs.cs
- DataBindingHandlerAttribute.cs
- ClosableStream.cs
- StringAnimationBase.cs
- HostedHttpTransportManager.cs
- IERequestCache.cs
- StorageComplexTypeMapping.cs
- LoadRetryStrategyFactory.cs
- IxmlLineInfo.cs
- MetadataPropertyCollection.cs
- ResolvedKeyFrameEntry.cs
- ObjectIDGenerator.cs
- _SslStream.cs
- DataGrid.cs
- EmptyReadOnlyDictionaryInternal.cs
- InvalidDataException.cs
- ControlPersister.cs
- IsolatedStorageFileStream.cs
- RecordBuilder.cs
- ObjectView.cs
- ErrorTableItemStyle.cs
- ConfigurationValidatorAttribute.cs
- XamlInt32CollectionSerializer.cs
- ServiceProviders.cs
- SRDisplayNameAttribute.cs
- PatternMatcher.cs
- DocumentAutomationPeer.cs
- RtfNavigator.cs
- XmlDocumentFragment.cs
- DSASignatureDeformatter.cs
- KeyConverter.cs
- IListConverters.cs
- CollectionChangedEventManager.cs
- TrackBarRenderer.cs
- ApplicationInfo.cs
- SwitchExpression.cs
- SqlDataReader.cs
- EndpointDiscoveryMetadata.cs
- FileDialogCustomPlacesCollection.cs
- PixelShader.cs
- DynamicVirtualDiscoSearcher.cs
- WebBaseEventKeyComparer.cs
- EntityDataSourceConfigureObjectContext.cs
- ExtendedProtectionPolicyTypeConverter.cs
- BrowserDefinitionCollection.cs
- AccessibleObject.cs
- Drawing.cs
- XpsResource.cs