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
- StackBuilderSink.cs
- EncryptRequest.cs
- AccessViolationException.cs
- TimeSpanFormat.cs
- ParserExtension.cs
- GenericFlowSwitchHelper.cs
- Material.cs
- UIHelper.cs
- DbConnectionPoolOptions.cs
- NativeCompoundFileAPIs.cs
- XmlDataSourceView.cs
- ParseChildrenAsPropertiesAttribute.cs
- WebPartConnectionsEventArgs.cs
- CodeTypeDeclarationCollection.cs
- DataGridViewSelectedRowCollection.cs
- SubstitutionDesigner.cs
- ResourceDictionaryCollection.cs
- FunctionDefinition.cs
- DefaultAsyncDataDispatcher.cs
- WorkflowRuntimeSection.cs
- RecommendedAsConfigurableAttribute.cs
- SettingsSection.cs
- Normalization.cs
- GridViewSortEventArgs.cs
- ExpressionLink.cs
- TextDecorationCollectionConverter.cs
- DateTimeOffset.cs
- CacheRequest.cs
- DebugControllerThread.cs
- Vector3DAnimation.cs
- StrokeRenderer.cs
- SpoolingTaskBase.cs
- BitmapEffectDrawingContextState.cs
- XmlText.cs
- DBDataPermissionAttribute.cs
- ListSortDescription.cs
- XmlSchemaImport.cs
- RelatedView.cs
- PageCodeDomTreeGenerator.cs
- DependencyProperty.cs
- XmlSignatureManifest.cs
- VerticalAlignConverter.cs
- SchemaDeclBase.cs
- DesignerPerfEventProvider.cs
- hwndwrapper.cs
- ResourceDictionaryCollection.cs
- BitmapPalette.cs
- ListenerSingletonConnectionReader.cs
- EventMappingSettingsCollection.cs
- FileSecurity.cs
- JoinSymbol.cs
- RegexMatch.cs
- SchemaDeclBase.cs
- ProgramPublisher.cs
- ToolBarButtonClickEvent.cs
- EntityDataSourceDataSelectionPanel.cs
- SignatureDescription.cs
- AnimationException.cs
- FileDialogCustomPlaces.cs
- TemplateAction.cs
- XmlAttributeAttribute.cs
- SqlBulkCopy.cs
- DataServiceRequestException.cs
- CompiledXpathExpr.cs
- FontUnitConverter.cs
- IndexOutOfRangeException.cs
- ResourceIDHelper.cs
- CompensationExtension.cs
- RoutedEventArgs.cs
- GradientSpreadMethodValidation.cs
- EntityDataSource.cs
- BitmapEffectRenderDataResource.cs
- HatchBrush.cs
- ServiceBehaviorElementCollection.cs
- System.Data.OracleClient_BID.cs
- OleStrCAMarshaler.cs
- BitmapMetadataEnumerator.cs
- X509CertificateInitiatorServiceCredential.cs
- DataRowCollection.cs
- MetaColumn.cs
- CommandHelpers.cs
- DynamicContractTypeBuilder.cs
- WebPartConnectionsConfigureVerb.cs
- EditorZoneBase.cs
- UInt16Converter.cs
- Size3D.cs
- TextFormatter.cs
- GridViewHeaderRowPresenter.cs
- UInt64.cs
- UpdatePanelTrigger.cs
- SimpleMailWebEventProvider.cs
- XmlValidatingReader.cs
- SqlGenericUtil.cs
- DependencyObjectProvider.cs
- StrokeCollectionDefaultValueFactory.cs
- DriveNotFoundException.cs
- Timeline.cs
- Substitution.cs
- SamlSubject.cs
- BufferAllocator.cs