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
- ComponentEditorPage.cs
- PolyQuadraticBezierSegment.cs
- MethodBuilder.cs
- ResourcePool.cs
- XmlImplementation.cs
- WebPartHeaderCloseVerb.cs
- WinFormsSpinner.cs
- OutputCacheSection.cs
- MediaTimeline.cs
- TargetConverter.cs
- AffineTransform3D.cs
- ButtonFlatAdapter.cs
- CodeObject.cs
- CustomWebEventKey.cs
- Model3D.cs
- CodeRegionDirective.cs
- ProxyWebPartConnectionCollection.cs
- Resources.Designer.cs
- UnicastIPAddressInformationCollection.cs
- QueryPageSettingsEventArgs.cs
- MenuBase.cs
- InfoCardArgumentException.cs
- QueryOutputWriter.cs
- CustomCredentialPolicy.cs
- BookmarkUndoUnit.cs
- ValidationErrorCollection.cs
- ExplicitDiscriminatorMap.cs
- XmlSchemaAny.cs
- ProfileProvider.cs
- PropertyGeneratedEventArgs.cs
- SimpleTextLine.cs
- HashStream.cs
- TableRowCollection.cs
- XmlNullResolver.cs
- SecurityStandardsManager.cs
- GeometryGroup.cs
- XmlSerializerFactory.cs
- OpCopier.cs
- CompilerGeneratedAttribute.cs
- ACL.cs
- SqlResolver.cs
- RequestCache.cs
- FrameworkObject.cs
- UnsafeNativeMethods.cs
- oledbmetadatacollectionnames.cs
- ControlCommandSet.cs
- ColorContext.cs
- DesignUtil.cs
- HtmlTableCellCollection.cs
- RangeValidator.cs
- SettingsPropertyIsReadOnlyException.cs
- ControlAdapter.cs
- xmlsaver.cs
- DataSourceView.cs
- ResXResourceWriter.cs
- DateTimeStorage.cs
- ClientCultureInfo.cs
- DeflateEmulationStream.cs
- Ref.cs
- InvokeProviderWrapper.cs
- RenderCapability.cs
- NullableFloatSumAggregationOperator.cs
- loginstatus.cs
- XpsS0ValidatingLoader.cs
- InfoCardArgumentException.cs
- SchemaCreator.cs
- DataTable.cs
- HandleCollector.cs
- LoginAutoFormat.cs
- CodeDirectoryCompiler.cs
- BindingMAnagerBase.cs
- Membership.cs
- MultiByteCodec.cs
- ShellProvider.cs
- ResXDataNode.cs
- SQLMoney.cs
- ListViewInsertionMark.cs
- PublisherIdentityPermission.cs
- StatusBarItem.cs
- Roles.cs
- JoinGraph.cs
- ReachDocumentReferenceSerializerAsync.cs
- HandlerFactoryWrapper.cs
- CapabilitiesUse.cs
- ThreadAbortException.cs
- TableLayoutPanelCodeDomSerializer.cs
- XPathChildIterator.cs
- NavigationPropertyEmitter.cs
- RowCache.cs
- Utils.cs
- ServiceDiscoveryElement.cs
- PropertyEmitterBase.cs
- HttpRequestCacheValidator.cs
- SymmetricKey.cs
- MetadataUtil.cs
- QueryUtil.cs
- WebPartAddingEventArgs.cs
- Application.cs
- TargetParameterCountException.cs
- SqlCommandSet.cs