6

WCF チャネル (ChannelFactory を介して作成) はどのように ICommunicationObject を実装しますが、プロキシを ICommunicationObject にキャストしない限り、Close() メソッドを公開しませんか? それは理にかなっていますか?

今日の帰り道、ふとそんなことを考えてしまったのですが、頭に浮かびませんでした。多分私は間違った質問をしていますか?たぶん私は愚かな質問をしていますか?:)

忍術の一種でしょうか?

4

2 に答える 2

2

Channelクラスはインターフェイスを明示的に実装しますICommunicationObject。明示的なインターフェイスの実装と暗黙的なインターフェイスの実装の違いを示す例を次に示します。

internal interface IExample
{
    void DoSomething();
}

class ImplicitExample : IExample
{
    public void DoSomething()
    {
        // ...
    }
}

class ExplicitExample : IExample
{
    void IExample.DoSomething()
    {
        // ...
    }
}

class Consumer
{
    void Demo()
    {
        var explicitExample = new ExplicitExample();
        // explicitExample.DoSomething(); <-- won't compile
        ((IExample)explicitExample).DoSomething(); // <-- compiles

        var implicitExample = new ImplicitExample();
        implicitExample.DoSomething(); // <-- compiles
    }
}

この件に関する MSDN 記事へのリンクは次のとおりです: http://msdn.microsoft.com/en-us/library/ms173157.aspx

于 2012-08-07T22:57:05.347 に答える