0

我在网上搜索了继承System.Net.NetworkInformation.NetworkInterface的示例,但我看不到任何优雅的解决方案。静态方法似乎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 回答
-1
class NetworkAdapter : NetworkInterface
{
    private NetworkInterface ni;

    public override string Description => _nic.Description;
}
于 2019-10-04T20:51:57.420 回答