Вот функция, которую я использую:
public static string GetIP4Address()
{
string IP4Address = String.Empty;
foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (IPA.AddressFamily == AddressFamily.InterNetwork)
{
IP4Address = IPA.ToString();
break;
}
}
return IP4Address;
}
В качестве перечислимого:
public static IEnumerable<string> GetIP4Addresses()
{
return Dns.GetHostAddresses(Dns.GetHostName())
.Where(IPA => IPA.AddressFamily == AddressFamily.InterNetwork)
.Select(x => x.ToString());
}
Рефлектор (который использовал , чтобы быть свободным) покажет вам это; загрузите dll и найдите интерфейс (F3) - разверните узел «Производные типы».
Почему бы просто не выполнить поиск во всем решении для этого:
\:.*MyInterface
и включить регулярные выражения в поле поиска - это должно сработать.
Изменить: исправлено регулярное выражение, оно раньше был для java, упс.
Использование функции «Перейти к наследнику» в Resharper или подобном плагине поможет.