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
- X509CertificateCollection.cs
- AutomationElementIdentifiers.cs
- DataSetViewSchema.cs
- DesignerDataParameter.cs
- LoginCancelEventArgs.cs
- figurelength.cs
- AdCreatedEventArgs.cs
- MemberAccessException.cs
- MetadataArtifactLoaderCompositeFile.cs
- ApplicationInterop.cs
- ObjectQueryExecutionPlan.cs
- StylusTip.cs
- LoadRetryAsyncResult.cs
- TextCompositionEventArgs.cs
- formatter.cs
- SoapBinding.cs
- ViewEvent.cs
- AuthenticationService.cs
- DBNull.cs
- TreePrinter.cs
- NTAccount.cs
- DigitalSignature.cs
- IgnoreDeviceFilterElement.cs
- ValidationRuleCollection.cs
- VectorAnimation.cs
- Grant.cs
- WebHostedComPlusServiceHost.cs
- PeerInvitationResponse.cs
- StorageAssociationTypeMapping.cs
- _ConnectStream.cs
- NotFiniteNumberException.cs
- RulePatternOps.cs
- Serializer.cs
- CompositeClientFormatter.cs
- IIS7UserPrincipal.cs
- SchemaNames.cs
- PipelineModuleStepContainer.cs
- FusionWrap.cs
- WindowExtensionMethods.cs
- ManipulationDelta.cs
- SchemaNames.cs
- Timeline.cs
- StreamHelper.cs
- SinglePhaseEnlistment.cs
- InvalidContentTypeException.cs
- DataKey.cs
- FormViewInsertedEventArgs.cs
- AvTraceDetails.cs
- CollectionChangedEventManager.cs
- EdgeProfileValidation.cs
- LinqDataSourceInsertEventArgs.cs
- WebPartDisplayModeCollection.cs
- HtmlMeta.cs
- QueryComponents.cs
- HelloOperationAsyncResult.cs
- DelegatingHeader.cs
- NumberSubstitution.cs
- DataGridPagerStyle.cs
- UnknownWrapper.cs
- PointCollection.cs
- PathStreamGeometryContext.cs
- SystemColors.cs
- FixedNode.cs
- GroupItemAutomationPeer.cs
- LocalizableResourceBuilder.cs
- CompositeActivityDesigner.cs
- DllNotFoundException.cs
- WorkflowInstanceRecord.cs
- ProgressiveCrcCalculatingStream.cs
- SHA512.cs
- HierarchicalDataTemplate.cs
- ListBase.cs
- SoapClientProtocol.cs
- TypeGeneratedEventArgs.cs
- GenerateTemporaryTargetAssembly.cs
- Geometry3D.cs
- IntSecurity.cs
- NetNamedPipeSecurity.cs
- HttpModuleCollection.cs
- FieldValue.cs
- FormCollection.cs
- SinglePageViewer.cs
- LocatorPartList.cs
- ConfigurationValue.cs
- BitVector32.cs
- SafePointer.cs
- DesignParameter.cs
- InvokeHandlers.cs
- DataGridViewComponentPropertyGridSite.cs
- IndicFontClient.cs
- Run.cs
- WebPartVerbsEventArgs.cs
- FormViewModeEventArgs.cs
- HttpClientCertificate.cs
- WebAdminConfigurationHelper.cs
- MediaContext.cs
- ListGeneralPage.cs
- ISAPIWorkerRequest.cs
- ClientConfigurationHost.cs
- GPRECTF.cs