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
- Action.cs
- SystemWebCachingSectionGroup.cs
- StylusPointPropertyInfoDefaults.cs
- IndicCharClassifier.cs
- StructuredType.cs
- DaylightTime.cs
- XmlBoundElement.cs
- Grant.cs
- Descriptor.cs
- Transform.cs
- Popup.cs
- MulticastIPAddressInformationCollection.cs
- PolicyManager.cs
- _SecureChannel.cs
- Size3D.cs
- RenderContext.cs
- WebPartZone.cs
- AttributeTableBuilder.cs
- ApplicationId.cs
- AuthorizationSection.cs
- HTMLTagNameToTypeMapper.cs
- InstallerTypeAttribute.cs
- DispatcherEventArgs.cs
- WebServiceEnumData.cs
- CheckBoxRenderer.cs
- TypeInfo.cs
- MatrixIndependentAnimationStorage.cs
- SoapDocumentServiceAttribute.cs
- RequestValidator.cs
- xamlnodes.cs
- AssemblyCache.cs
- CalendarButtonAutomationPeer.cs
- StylusPointPropertyUnit.cs
- Soap12ProtocolReflector.cs
- BinaryObjectWriter.cs
- ParserHooks.cs
- HtmlInputCheckBox.cs
- externdll.cs
- recordstate.cs
- MediaContextNotificationWindow.cs
- QueryExpr.cs
- MetabaseReader.cs
- Merger.cs
- DiffuseMaterial.cs
- sitestring.cs
- GeneratedView.cs
- Bezier.cs
- BufferedMessageWriter.cs
- SmiConnection.cs
- CodeBinaryOperatorExpression.cs
- SoapFormatter.cs
- TransportationConfigurationTypeInstallComponent.cs
- CatalogPartCollection.cs
- ContextActivityUtils.cs
- XmlSchemaFacet.cs
- SizeChangedInfo.cs
- FlowLayout.cs
- FormatSettings.cs
- ComponentDispatcherThread.cs
- Tablet.cs
- DesignObjectWrapper.cs
- DataObjectSettingDataEventArgs.cs
- PresentationSource.cs
- DataViewManager.cs
- MetadataStore.cs
- SessionParameter.cs
- XmlSerializerNamespaces.cs
- Span.cs
- Bitmap.cs
- SelectionManager.cs
- XPathNode.cs
- OleDbParameterCollection.cs
- dataprotectionpermissionattribute.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- SingleAnimation.cs
- ThreadPool.cs
- Soap12FormatExtensions.cs
- PreservationFileWriter.cs
- IconHelper.cs
- LoadWorkflowAsyncResult.cs
- SessionPageStateSection.cs
- VersionUtil.cs
- NameScope.cs
- DiscoveryOperationContextExtension.cs
- XmlSchemaSimpleTypeRestriction.cs
- MobileControlsSectionHelper.cs
- SystemResources.cs
- SoapFaultCodes.cs
- AccessViolationException.cs
- InkCanvasAutomationPeer.cs
- StreamingContext.cs
- BindToObject.cs
- InstancePersistenceContext.cs
- ExpressionBuilderCollection.cs
- SerializationAttributes.cs
- ObjectDataSourceSelectingEventArgs.cs
- AuthStoreRoleProvider.cs
- TreeView.cs
- EntityCommandDefinition.cs
- WSSecurityJan2004.cs