0

System.Net.NetworkInformation.NetworkInterfaceを継承する例を Web で検索しましたが、これに対するエレガントなソリューションは見つかりません。静的メソッドNetworkInterface.GetAllNetworkInterfaces()は と呼ばれる内部実装を返すようSystemNetworkInterfaceです。

基本的に、これをというクラスに継承し、ManagedNetworkInterfaceいくつかの追加機能を追加したいと考えています。これを行う方法のエレガントなソリューションを考えられる人はいますか? 試してみましたが、毎回何かが私の足を止めてしまいます!

編集1:

実装を にキャストしてから にキャストすることによって実装を提供することは許容されNetworkInterfaceますManagedNetworkInterfaceか?

...この例は厄介です。

ManagedNetworkInterface mni = (ManagedNetworkInterface)(NetworkInterface)NetworkInterface.GetAllNetworkInterfaces()[0];

編集2:

コンポジションのようなモデルを使用することも考えました...

public class ManagedNetworkInterface : NetworkInterface
{
    private NetworkInterface ni;

    public override string Description
    {
        get { return ni.Description; }
    }

    //ect...
}

これは良い考えですか、それとも悪い考えですか?

4

3 に答える 3

1

NetworkInterfaceの拡張メソッドを作成します

public static class MyExtensions
{
    public static void MyMethod(this NetworkInterface ni)
    {
          //Some Code
    }
}

として使用しますni.MyMethod()

于 2012-09-26T09:09:50.410 に答える
0

問題は解決された。コンポジションを使用して抽象クラスを継承および実装しましたNetworkInterface

コード

public class ManagedNetworkInterface : NetworkInterface
{
    private NetworkInterface ni;

    public override string Description
    {
        get { return ni.Description; }
    }

    //ect...
}

新しいクラスには、IP アドレス、物理アドレス、ID、名前などを使用して ManagedNetworkInterface のインスタンスを作成するためのいくつかのメカニズムが含まれています。

于 2012-10-04T10:30:11.610 に答える