Code:
/ 4.0 / 4.0 / 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. 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
- RangeValueProviderWrapper.cs
- ProfileManager.cs
- BaseDataListComponentEditor.cs
- Util.cs
- DefaultCommandConverter.cs
- _AutoWebProxyScriptHelper.cs
- ReferentialConstraint.cs
- SQLBytesStorage.cs
- ComNativeDescriptor.cs
- WebZoneDesigner.cs
- XmlSchemas.cs
- EnumerableValidator.cs
- MachineKeyConverter.cs
- FlowDocument.cs
- IntSecurity.cs
- controlskin.cs
- EntityProviderFactory.cs
- AddInAttribute.cs
- SqlErrorCollection.cs
- GridViewDeleteEventArgs.cs
- PrimitiveList.cs
- ListItemConverter.cs
- ButtonFieldBase.cs
- EmptyElement.cs
- OrderPreservingSpoolingTask.cs
- ConsoleCancelEventArgs.cs
- ScrollEventArgs.cs
- DataGridViewComboBoxColumn.cs
- TeredoHelper.cs
- XamlStackWriter.cs
- GenerateHelper.cs
- SafeFileMappingHandle.cs
- CollectionsUtil.cs
- DecoratedNameAttribute.cs
- NativeMethods.cs
- UserPrincipalNameElement.cs
- GridLengthConverter.cs
- Model3DGroup.cs
- AuthorizationContext.cs
- Size3DConverter.cs
- IndentedWriter.cs
- COM2TypeInfoProcessor.cs
- CapabilitiesRule.cs
- DataGridViewImageCell.cs
- HttpApplication.cs
- WebPartConnectionsEventArgs.cs
- ImageSourceTypeConverter.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- CryptoApi.cs
- HwndMouseInputProvider.cs
- WmlPhoneCallAdapter.cs
- XPathArrayIterator.cs
- WorkflowViewElement.cs
- GrammarBuilderPhrase.cs
- LockCookie.cs
- SerializationException.cs
- odbcmetadatafactory.cs
- FindCriteriaApril2005.cs
- PnrpPeerResolverElement.cs
- TextServicesManager.cs
- SqlLiftWhereClauses.cs
- WebMessageFormatHelper.cs
- MatrixTransform.cs
- SqlCommandAsyncResult.cs
- Visual.cs
- WebPartCatalogCloseVerb.cs
- Hex.cs
- TargetControlTypeCache.cs
- UnauthorizedAccessException.cs
- GridViewDeleteEventArgs.cs
- PropertyValueUIItem.cs
- ReceiveReply.cs
- SecurityTimestamp.cs
- HostVisual.cs
- SoapAttributes.cs
- FontStretchConverter.cs
- DoubleCollectionConverter.cs
- SoapAttributeOverrides.cs
- OciEnlistContext.cs
- Random.cs
- UrlPath.cs
- CellParaClient.cs
- ValueChangedEventManager.cs
- PropertyReferenceExtension.cs
- Misc.cs
- XmlJsonWriter.cs
- CompositionTarget.cs
- ConfigXmlElement.cs
- DetailsViewPagerRow.cs
- WeakReferenceKey.cs
- AgileSafeNativeMemoryHandle.cs
- Ops.cs
- OlePropertyStructs.cs
- FormParameter.cs
- StandardOleMarshalObject.cs
- Stroke.cs
- HtmlWindow.cs
- EventLogPermissionAttribute.cs
- CodeMemberEvent.cs
- ProxyWebPart.cs