[英]Inheriting NetworkInterface in C#
我在网上搜索了继承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...
}
这是一个好主意还是坏主意?
我会为NetworkInterface编写扩展方法
public static class MyExtensions
{
public static void MyMethod(this NetworkInterface ni)
{
//Some Code
}
}
并用作ni.MyMethod()
问题解决了。 我已经使用组合来继承和实现抽象类NetworkInterface
码
public class ManagedNetworkInterface : NetworkInterface
{
private NetworkInterface ni;
public override string Description
{
get { return ni.Description; }
}
//ect...
}
现在,新类包括几种使用IP地址,物理地址,ID,名称等创建ManagedNetworkInterface实例的机制。
class NetworkAdapter : NetworkInterface
{
private NetworkInterface ni;
public override string Description => _nic.Description;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.