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
- Compiler.cs
- FormatException.cs
- SafeRightsManagementEnvironmentHandle.cs
- QuaternionAnimation.cs
- OleStrCAMarshaler.cs
- PartialCachingControl.cs
- XmlImplementation.cs
- ContextMarshalException.cs
- DesignerPerfEventProvider.cs
- TreeNodeSelectionProcessor.cs
- AutomationElementCollection.cs
- OracleString.cs
- RequestCacheEntry.cs
- ParameterDataSourceExpression.cs
- DecoderFallbackWithFailureFlag.cs
- RectAnimationClockResource.cs
- TypeConverterHelper.cs
- ErrorHandler.cs
- DirectionalLight.cs
- NumberFormatInfo.cs
- DecoderFallbackWithFailureFlag.cs
- PackageRelationshipCollection.cs
- ProcessModelInfo.cs
- DbExpressionVisitor_TResultType.cs
- BindingExpressionUncommonField.cs
- InitializeCorrelation.cs
- indexingfiltermarshaler.cs
- Sql8ConformanceChecker.cs
- OleDbConnectionInternal.cs
- DataGridViewRowsRemovedEventArgs.cs
- Item.cs
- BaseProcessProtocolHandler.cs
- BasicDesignerLoader.cs
- Interop.cs
- BufferAllocator.cs
- DllNotFoundException.cs
- TitleStyle.cs
- QueryPageSettingsEventArgs.cs
- ValidatingReaderNodeData.cs
- Bezier.cs
- counter.cs
- DataSourceGroupCollection.cs
- MetabaseServerConfig.cs
- ForeignConstraint.cs
- DefaultWorkflowTransactionService.cs
- InternalCompensate.cs
- SessionEndedEventArgs.cs
- XmlText.cs
- BaseTypeViewSchema.cs
- PartialList.cs
- DiscoveryServiceExtension.cs
- HelloMessageCD1.cs
- DropShadowEffect.cs
- ArraySet.cs
- ConfigurationStrings.cs
- MenuItemBindingCollection.cs
- MultiDataTrigger.cs
- Figure.cs
- XmlBinaryReader.cs
- VBIdentifierDesigner.xaml.cs
- CustomExpression.cs
- DataGridColumnCollection.cs
- Line.cs
- XmlWhitespace.cs
- DrawingAttributeSerializer.cs
- LoadedOrUnloadedOperation.cs
- GeneralTransformGroup.cs
- DataGridSortingEventArgs.cs
- SafeNativeMethods.cs
- ConfigurationStrings.cs
- PassportPrincipal.cs
- SaveFileDialogDesigner.cs
- RC2CryptoServiceProvider.cs
- BindingListCollectionView.cs
- BooleanProjectedSlot.cs
- odbcmetadatafactory.cs
- PeerNearMe.cs
- ArithmeticException.cs
- VBIdentifierName.cs
- WindowVisualStateTracker.cs
- EntityClassGenerator.cs
- TerminatorSinks.cs
- DeadCharTextComposition.cs
- FilterElement.cs
- Propagator.ExtentPlaceholderCreator.cs
- SqlGatherConsumedAliases.cs
- ToolStripComboBox.cs
- XmlSubtreeReader.cs
- IISMapPath.cs
- Style.cs
- TypeConverterValueSerializer.cs
- SHA384CryptoServiceProvider.cs
- SevenBitStream.cs
- ScalarOps.cs
- SafeViewOfFileHandle.cs
- GeneratedContractType.cs
- MobileSysDescriptionAttribute.cs
- XmlImplementation.cs
- ProviderUtil.cs
- ExpressionLexer.cs