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
- SystemEvents.cs
- DesignerTextWriter.cs
- Light.cs
- PrimitiveType.cs
- BackgroundFormatInfo.cs
- DrawingServices.cs
- TextServicesManager.cs
- InputProcessorProfiles.cs
- FaultPropagationQuery.cs
- MULTI_QI.cs
- uribuilder.cs
- WindowsTooltip.cs
- MatchAttribute.cs
- securitycriticaldata.cs
- SignedXmlDebugLog.cs
- HintTextMaxWidthConverter.cs
- EnumBuilder.cs
- CodeEntryPointMethod.cs
- UnsafeNativeMethods.cs
- ZipIOExtraFieldElement.cs
- ByteAnimationUsingKeyFrames.cs
- ContextMenu.cs
- ContainerUtilities.cs
- XmlCustomFormatter.cs
- ObjectListSelectEventArgs.cs
- NameValueConfigurationElement.cs
- CommonObjectSecurity.cs
- ItemCollection.cs
- SqlWorkflowPersistenceService.cs
- BoundPropertyEntry.cs
- DependencyPropertyChangedEventArgs.cs
- PropertyDescriptorComparer.cs
- SqlTriggerAttribute.cs
- DateTimeHelper.cs
- DispatcherProcessingDisabled.cs
- CompositeTypefaceMetrics.cs
- BaseValidator.cs
- DataGridViewRowEventArgs.cs
- DrawingImage.cs
- CalendarDay.cs
- XmlIterators.cs
- OLEDB_Enum.cs
- XmlSchemas.cs
- DesignerUtility.cs
- RealProxy.cs
- NonParentingControl.cs
- ToolStripOverflowButton.cs
- SystemDiagnosticsSection.cs
- WebAdminConfigurationHelper.cs
- ProtectedConfigurationSection.cs
- GenericAuthenticationEventArgs.cs
- PropertyDescriptor.cs
- DateTimeFormatInfo.cs
- RoleGroupCollectionEditor.cs
- base64Transforms.cs
- SelectionProcessor.cs
- securestring.cs
- MenuItemBindingCollection.cs
- LexicalChunk.cs
- WorkflowInspectionServices.cs
- PropertyEmitterBase.cs
- MobileControlsSectionHelper.cs
- MimeImporter.cs
- RuntimeResourceSet.cs
- HttpProfileGroupBase.cs
- AttributeCollection.cs
- StreamDocument.cs
- HwndProxyElementProvider.cs
- EmbeddedObject.cs
- KeyGesture.cs
- StyleSheetComponentEditor.cs
- SettingsPropertyNotFoundException.cs
- SizeIndependentAnimationStorage.cs
- EventLogTraceListener.cs
- CompilerError.cs
- ProbeMatchesMessage11.cs
- AppDomain.cs
- XmlChildEnumerator.cs
- ConsumerConnectionPoint.cs
- StreamGeometry.cs
- XmlSchemaSimpleTypeList.cs
- InvokeGenerator.cs
- MustUnderstandBehavior.cs
- TreeNodeMouseHoverEvent.cs
- AvtEvent.cs
- InvalidProgramException.cs
- NativeMethods.cs
- RepeatBehaviorConverter.cs
- GridToolTip.cs
- TextTreeTextElementNode.cs
- Configuration.cs
- RadialGradientBrush.cs
- COM2PropertyDescriptor.cs
- DateTimeStorage.cs
- RootBrowserWindow.cs
- SecurityTokenParametersEnumerable.cs
- WebPartConnectionsEventArgs.cs
- TabItem.cs
- SettingsSavedEventArgs.cs
- DLinqTableProvider.cs