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
- GeometryConverter.cs
- ProfileGroupSettings.cs
- MultipleViewPatternIdentifiers.cs
- ModelProperty.cs
- Debugger.cs
- SqlColumnizer.cs
- FixedSOMElement.cs
- BitmapEffectInputConnector.cs
- GridViewRowEventArgs.cs
- VectorCollectionValueSerializer.cs
- FileNameEditor.cs
- StringOutput.cs
- AuthenticationConfig.cs
- SqlUnionizer.cs
- RtfFormatStack.cs
- HtmlTernaryTree.cs
- PageBreakRecord.cs
- SimpleHandlerBuildProvider.cs
- ApplicationServiceHelper.cs
- PositiveTimeSpanValidator.cs
- Pair.cs
- PropertyDescriptorGridEntry.cs
- SqlDeflator.cs
- DataSourceSelectArguments.cs
- EqualityComparer.cs
- PropagatorResult.cs
- DrawingContext.cs
- DescendentsWalkerBase.cs
- SHA384Managed.cs
- XmlDataDocument.cs
- DataObjectMethodAttribute.cs
- DPCustomTypeDescriptor.cs
- EncryptedPackage.cs
- ListItemConverter.cs
- SqlTopReducer.cs
- StringValidator.cs
- RequiredFieldValidator.cs
- Point3D.cs
- Binding.cs
- _ListenerAsyncResult.cs
- Transaction.cs
- StylusPointDescription.cs
- ForAllOperator.cs
- CryptoApi.cs
- HMACSHA512.cs
- GraphicsContext.cs
- AutomationEvent.cs
- RawStylusInput.cs
- PresentationTraceSources.cs
- GiveFeedbackEventArgs.cs
- HierarchicalDataBoundControl.cs
- LayoutUtils.cs
- ProxyDataContractResolver.cs
- Executor.cs
- DictationGrammar.cs
- PrimitiveSchema.cs
- RequestResizeEvent.cs
- Normalizer.cs
- XPathEmptyIterator.cs
- Calendar.cs
- ValidatorCompatibilityHelper.cs
- JavaScriptString.cs
- StatementContext.cs
- PropertyInfoSet.cs
- ObjectStorage.cs
- GetMemberBinder.cs
- MailAddressCollection.cs
- MruCache.cs
- FreezableCollection.cs
- DataGridViewCellStyleChangedEventArgs.cs
- SmiRequestExecutor.cs
- securestring.cs
- OutputChannelBinder.cs
- NetworkInterface.cs
- BindingContext.cs
- NativeMethods.cs
- ScriptDescriptor.cs
- ProgressiveCrcCalculatingStream.cs
- Avt.cs
- Duration.cs
- CodeTypeMember.cs
- UpdateRecord.cs
- OleDbStruct.cs
- OracleCommandSet.cs
- BindingExpressionUncommonField.cs
- Logging.cs
- Metadata.cs
- DataObjectMethodAttribute.cs
- SizeConverter.cs
- MetadataCacheItem.cs
- _Events.cs
- ConditionalWeakTable.cs
- TextServicesLoader.cs
- LocalizableResourceBuilder.cs
- XmlSigningNodeWriter.cs
- BitmapEffectDrawing.cs
- FixedPageStructure.cs
- PrintSystemException.cs
- WSFederationHttpSecurityElement.cs
- _OverlappedAsyncResult.cs