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
- ViewCellRelation.cs
- ToolboxItemSnapLineBehavior.cs
- DataGridViewColumnCollection.cs
- XslVisitor.cs
- DataGridViewElement.cs
- TrimSurroundingWhitespaceAttribute.cs
- RuntimeConfig.cs
- TemplatedMailWebEventProvider.cs
- ListViewUpdatedEventArgs.cs
- ImageKeyConverter.cs
- VSWCFServiceContractGenerator.cs
- EdmItemError.cs
- EditingCoordinator.cs
- UrlAuthorizationModule.cs
- InkCollectionBehavior.cs
- AnimationTimeline.cs
- DrawingContextDrawingContextWalker.cs
- TemplatedWizardStep.cs
- MenuScrollingVisibilityConverter.cs
- AnnotationObservableCollection.cs
- UInt64.cs
- NullableLongAverageAggregationOperator.cs
- KnownTypes.cs
- WebServiceTypeData.cs
- UnsafeNativeMethods.cs
- SizeValueSerializer.cs
- SinglePageViewer.cs
- _NetworkingPerfCounters.cs
- ExpressionNode.cs
- EditingContext.cs
- DebugHandleTracker.cs
- ObjectHelper.cs
- ConfigurationException.cs
- SafeNativeMethods.cs
- RoutedEventValueSerializer.cs
- SessionPageStatePersister.cs
- ToolBarOverflowPanel.cs
- TreeWalker.cs
- CalendarSelectionChangedEventArgs.cs
- StoragePropertyMapping.cs
- ObjectManager.cs
- dbenumerator.cs
- DataGridViewLayoutData.cs
- KeyboardNavigation.cs
- QueryCacheEntry.cs
- SmtpNetworkElement.cs
- WebServicesDescriptionAttribute.cs
- ImageField.cs
- DataComponentNameHandler.cs
- TdsParserStaticMethods.cs
- DirectoryObjectSecurity.cs
- SingleObjectCollection.cs
- InitializationEventAttribute.cs
- ProcessModelSection.cs
- TraceSection.cs
- DoneReceivingAsyncResult.cs
- SqlStream.cs
- PreservationFileWriter.cs
- StaticTextPointer.cs
- OpCopier.cs
- ListMarkerSourceInfo.cs
- TreeIterator.cs
- GatewayIPAddressInformationCollection.cs
- ColumnWidthChangedEvent.cs
- ElementProxy.cs
- CqlBlock.cs
- IFlowDocumentViewer.cs
- LoginView.cs
- KeyPullup.cs
- MessageQueueAccessControlEntry.cs
- XPathConvert.cs
- HtmlInputFile.cs
- KeyEventArgs.cs
- ToolStripGrip.cs
- LabelAutomationPeer.cs
- XmlSchemaComplexContentRestriction.cs
- RouteItem.cs
- CommandHelpers.cs
- PeerCustomResolverBindingElement.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- XmlMtomWriter.cs
- SetStoryboardSpeedRatio.cs
- ModuleBuilder.cs
- ChooseAction.cs
- Repeater.cs
- ConfigXmlComment.cs
- ToolStripControlHost.cs
- QueryResponse.cs
- VisemeEventArgs.cs
- AnnotationComponentManager.cs
- Confirm.cs
- KerberosReceiverSecurityToken.cs
- DocumentPageTextView.cs
- NumberFunctions.cs
- SystemIPInterfaceProperties.cs
- LinkClickEvent.cs
- GeometryConverter.cs
- MulticastIPAddressInformationCollection.cs
- SerializationObjectManager.cs
- RowToFieldTransformer.cs