Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Hosting / RemotingHelper.cs / 1305376 / RemotingHelper.cs
using System; using System.Collections.Generic; using System.Text; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Ipc; namespace System.AddIn.Hosting { internal static class RemotingHelper { // runtime initializes this to false; static bool CreatedInAD; static readonly Object s_lock = new Object(); internal static readonly String s_emptyGuid = Guid.Empty.ToString(); //// [System.Security.SecuritySafeCritical] [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Assert, Flags = System.Security.Permissions.SecurityPermissionFlag.RemotingConfiguration | System.Security.Permissions.SecurityPermissionFlag.Infrastructure)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2116:AptcaMethodsShouldOnlyCallAptcaMethods")] [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 static void InitializeClientChannel() { lock(s_lock) { if (CreatedInAD) // only one client channel per AD return; CreatedInAD = true; // make sure this hasn't been created already in this AD // BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider(); serverProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full; BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider(); System.Collections.IDictionary props = new System.Collections.Hashtable(); props["name"] = "ClientChannel"; props["portName"] = Guid.NewGuid().ToString(); props["typeFilterLevel"] = "Full"; // When communicating between application domains on the same computer, the ipc channel is much faster than the tcp IChannel ichannel = new AddInIpcChannel(props, clientProvider, serverProvider); // ( ChannelServices.RegisterChannel(ichannel, false); } } // AddinServer is a singleton per process. It is created at process creation. // The AddinServer is the Marshaled class used to hook up the Client and Server remoting channel. //// // // // // // [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")] [System.Security.SecuritySafeCritical] internal static AddInServer GetAddInServer(string guid) { System.Diagnostics.Contracts.Contract.Requires(guid != null && guid != s_emptyGuid); return (AddInServer)Activator.GetObject(Type.GetType(@"System.AddIn.Hosting.AddInServer") , @"ipc://" + guid + @"/AddInServer"); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.//
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LoginCancelEventArgs.cs
- DataSetViewSchema.cs
- PerformanceCountersElement.cs
- PropertyConverter.cs
- ExitEventArgs.cs
- ElementNotEnabledException.cs
- FontStyles.cs
- BitmapEffectInput.cs
- WSFederationHttpSecurityMode.cs
- WindowsRegion.cs
- WebBrowserPermission.cs
- HttpDictionary.cs
- SerializationEventsCache.cs
- XmlQualifiedNameTest.cs
- shaperfactory.cs
- WmlCalendarAdapter.cs
- EnlistmentState.cs
- SharedDp.cs
- DesignerAttribute.cs
- SettingsAttributeDictionary.cs
- Ref.cs
- ContainerParagraph.cs
- Help.cs
- _ConnectOverlappedAsyncResult.cs
- BuilderPropertyEntry.cs
- TypeConverterHelper.cs
- TableLayoutSettings.cs
- SendActivityValidator.cs
- RulePatternOps.cs
- Int32Rect.cs
- GeometryCollection.cs
- ToolStripItemRenderEventArgs.cs
- ModuleBuilder.cs
- RequestQueue.cs
- ScriptingProfileServiceSection.cs
- ModifierKeysValueSerializer.cs
- LineUtil.cs
- ReferenceService.cs
- PackUriHelper.cs
- FrameworkElementAutomationPeer.cs
- WebFormDesignerActionService.cs
- XmlUtf8RawTextWriter.cs
- QilValidationVisitor.cs
- IgnoreFlushAndCloseStream.cs
- PointLightBase.cs
- MsdtcWrapper.cs
- DLinqTableProvider.cs
- PerformanceCounterPermission.cs
- SchemaEntity.cs
- ReverseInheritProperty.cs
- DecimalAnimationUsingKeyFrames.cs
- WebPartDescription.cs
- SQLDateTime.cs
- BatchParser.cs
- TextDecorationUnitValidation.cs
- DataPagerFieldItem.cs
- __FastResourceComparer.cs
- ListBoxDesigner.cs
- StringValidatorAttribute.cs
- LayoutManager.cs
- OleDbFactory.cs
- IPAddressCollection.cs
- FontDifferentiator.cs
- ScrollPattern.cs
- CodeComment.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- Int32.cs
- RemoveStoryboard.cs
- BindingManagerDataErrorEventArgs.cs
- DesignSurfaceServiceContainer.cs
- AsymmetricKeyExchangeFormatter.cs
- ClientFormsAuthenticationCredentials.cs
- RowTypeElement.cs
- BitmapEffect.cs
- OutputCacheSettings.cs
- ClipboardData.cs
- PageTextBox.cs
- StreamWriter.cs
- HttpDictionary.cs
- HtmlButton.cs
- RemotingSurrogateSelector.cs
- SafeArrayTypeMismatchException.cs
- GraphicsContainer.cs
- PieceDirectory.cs
- _WinHttpWebProxyDataBuilder.cs
- TableProviderWrapper.cs
- ManipulationStartedEventArgs.cs
- CounterCreationDataConverter.cs
- TranslateTransform3D.cs
- AppDomain.cs
- SmiSettersStream.cs
- ThicknessConverter.cs
- LazyLoadBehavior.cs
- cookieexception.cs
- CompatibleIComparer.cs
- TableCell.cs
- RenderTargetBitmap.cs
- SendKeys.cs
- HelloOperationCD1AsyncResult.cs
- RegexWorker.cs