IClientChannelSinkProvider.Next プロパティ

チャネル シンク プロバイダ チェイン内の次のシンク プロバイダを取得または設定します。

Property Next As IClientChannelSinkProvider
[C#]
IClientChannelSinkProvider Next {get; set;}
[C++]
__property IClientChannelSinkProvider* get_Next();__property void set_Next(IClientChannelSinkProvider*);
[JScript]
function get Next() : IClientChannelSinkProvider;function set Next(IClientChannelSinkProvider);

プロパティ値

チャネル シンク プロバイダ チェイン内の次のシンク プロバイダ。

例外

例外の種類 条件
SecurityException 直前の呼び出し元に、インフラストラクチャ アクセス許可がありません。

使用例

 
Public Class MyServerProcessingLogClientChannelSinkProviderData
   Implements IClientChannelSinkProvider

   Private myClientChannelSinkProviderNext As IClientChannelSinkProvider = Nothing

   Public Sub New()
   End Sub 'New

   Public Sub New(ByVal myIDictionaryProperties As IDictionary, ByVal _
              myICollectionProviderData As ICollection)
   End Sub 'New

   Public Function CreateSink(ByVal myChannelSenderData As IChannelSender, ByVal url As String, _
              ByVal myRemoteChannelData As Object) As IClientChannelSink Implements _
              IClientChannelSinkProvider.CreateSink
      Dim myClientChannelSinkNextSink As IClientChannelSink = Nothing
      If Not (myClientChannelSinkProviderNext Is Nothing) Then
         myClientChannelSinkNextSink = myClientChannelSinkProviderNext.CreateSink _
              (myChannelSenderData, url, myRemoteChannelData)
         If myClientChannelSinkNextSink Is Nothing Then
            Return Nothing
         End If
      End If
      Return New MyLoggingClientChannelSink(myClientChannelSinkNextSink)
   End Function 'CreateSink

   Public Property [Next]() As IClientChannelSinkProvider Implements IClientChannelSinkProvider.Next
      Get
         Return myClientChannelSinkProviderNext
      End Get
      Set(ByVal Value As IClientChannelSinkProvider)
         myClientChannelSinkProviderNext = Value
      End Set
   End Property
End Class 'MyServerProcessingLogClientChannelSinkProviderData

[C#] 
public class MyServerProcessingLogClientChannelSinkProviderData : IClientChannelSinkProvider
{

   private IClientChannelSinkProvider myClientChannelSinkProviderNext = null;
   public MyServerProcessingLogClientChannelSinkProviderData()
   {
   }
   public MyServerProcessingLogClientChannelSinkProviderData(IDictionary myIDictionaryProperties,
                                                               ICollection myICollectionProviderData)
   {
   }

   public IClientChannelSink CreateSink(IChannelSender myChannelSenderData, String url,
      Object myRemoteChannelData)
   {
      IClientChannelSink myClientChannelSinkNextSink = null;
      if (myClientChannelSinkProviderNext != null)
      {
         myClientChannelSinkNextSink =
            myClientChannelSinkProviderNext.CreateSink(myChannelSenderData, url, myRemoteChannelData);
         if (myClientChannelSinkNextSink == null)
            return null;
      }
      return new MyLoggingClientChannelSink(myClientChannelSinkNextSink);
   }

   public IClientChannelSinkProvider Next
   {
      get
         {
            return myClientChannelSinkProviderNext;
         }
      set
         {
             myClientChannelSinkProviderNext = value;
         }
   }
}

[C++] 
public __gc class MyServerProcessingLogClientChannelSinkProviderData : public IClientChannelSinkProvider
{

private:
   IClientChannelSinkProvider* myClientChannelSinkProviderNext;
public:
   MyServerProcessingLogClientChannelSinkProviderData()
   {
      myClientChannelSinkProviderNext = 0;
   }

   MyServerProcessingLogClientChannelSinkProviderData(IDictionary* myIDictionaryProperties,
      ICollection* myICollectionProviderData)
   {
   }

   IClientChannelSink* CreateSink(IChannelSender* myChannelSenderData, String* url,
      Object* myRemoteChannelData)
   {
      IClientChannelSink* myClientChannelSinkNextSink = 0;
      if (myClientChannelSinkProviderNext != 0)
      {
         myClientChannelSinkNextSink =
            myClientChannelSinkProviderNext->CreateSink(myChannelSenderData, url, myRemoteChannelData);
         if (myClientChannelSinkNextSink == 0)
            return 0;
      }
      return new MyLoggingClientChannelSink(myClientChannelSinkNextSink);
   }

   __property IClientChannelSinkProvider* get_Next()
   {
      return myClientChannelSinkProviderNext;
   }

   __property void set_Next( IClientChannelSinkProvider* value )
   {
      myClientChannelSinkProviderNext = value;
   }

};

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

IClientChannelSinkProvider インターフェイス | IClientChannelSinkProvider メンバ | System.Runtime.Remoting.Channels 名前空間