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
- MarkerProperties.cs
- Line.cs
- DefaultValueAttribute.cs
- QuaternionValueSerializer.cs
- DelegatedStream.cs
- ADRole.cs
- EntityRecordInfo.cs
- Soap12FormatExtensions.cs
- CodeIndexerExpression.cs
- Wizard.cs
- UInt32.cs
- StateMachineSubscriptionManager.cs
- DataGridCaption.cs
- QilUnary.cs
- WeakReferenceKey.cs
- EmptyEnumerable.cs
- TextViewDesigner.cs
- SqlConnectionStringBuilder.cs
- DocumentReference.cs
- DataRelationCollection.cs
- CachedFontFace.cs
- Utils.cs
- StringValueSerializer.cs
- Rect.cs
- BitmapEffectRenderDataResource.cs
- SiteMapDataSource.cs
- InOutArgument.cs
- SqlDataSourceView.cs
- BooleanConverter.cs
- WindowsSysHeader.cs
- ScrollEventArgs.cs
- SqlSelectClauseBuilder.cs
- SvcMapFile.cs
- NotifyInputEventArgs.cs
- NegotiationTokenAuthenticatorStateCache.cs
- CodeArgumentReferenceExpression.cs
- WebResponse.cs
- WindowExtensionMethods.cs
- DataGridColumnCollection.cs
- XmlExtensionFunction.cs
- DataControlFieldCell.cs
- DataControlButton.cs
- EntityCommandDefinition.cs
- AuthStoreRoleProvider.cs
- EventKeyword.cs
- AttributeAction.cs
- SimpleModelProvider.cs
- DataGridRow.cs
- OrthographicCamera.cs
- EntityParameter.cs
- BindingContext.cs
- TextEditorParagraphs.cs
- SurrogateEncoder.cs
- ContainerVisual.cs
- MDIControlStrip.cs
- QilReference.cs
- WebPartMovingEventArgs.cs
- ParseElementCollection.cs
- ErrorLog.cs
- X509Chain.cs
- ProxyWebPart.cs
- XD.cs
- DataGridViewTextBoxColumn.cs
- StreamedFramingRequestChannel.cs
- PageFunction.cs
- ClientProtocol.cs
- StatusBarDrawItemEvent.cs
- ProviderException.cs
- SqlRecordBuffer.cs
- ConnectionsZone.cs
- ConfigXmlText.cs
- CodeVariableDeclarationStatement.cs
- DecimalSumAggregationOperator.cs
- AffineTransform3D.cs
- DesignUtil.cs
- HijriCalendar.cs
- UnhandledExceptionEventArgs.cs
- PointKeyFrameCollection.cs
- CompareInfo.cs
- SystemIcons.cs
- DateTimeSerializationSection.cs
- SqlMethodAttribute.cs
- MdImport.cs
- BufferedGraphicsManager.cs
- Converter.cs
- storagemappingitemcollection.viewdictionary.cs
- MouseBinding.cs
- CacheManager.cs
- CmsInterop.cs
- DataGridViewColumnTypePicker.cs
- MeshGeometry3D.cs
- VisualBrush.cs
- XmlWriterTraceListener.cs
- MouseButton.cs
- ReceiveCompletedEventArgs.cs
- FileAuthorizationModule.cs
- HttpCapabilitiesBase.cs
- HttpValueCollection.cs
- FrameAutomationPeer.cs
- IriParsingElement.cs