Я использую библиотеку DnsClient.NET
для запроса dns в моем коде c #, поскольку библиотека предлагает , лучше использовать синглтон client
во всех приложениях, чтобы использовать преимущества кэширования.
Я написал этот вспомогательный класс для работы с библиотекой DnsClient.NET
, но я не знаю, как использовать ninject, чтобы иметь его единичный экземпляр во всем приложении.
public class IBDnsHelper
{
private LookupClient client;
public IBDnsHelper(string DnsServer , int DnsPort)
{
client = new LookupClient(IPAddress.Parse(DnsServer), DnsPort);
}
public string ResolveName(string Name = "")
{
try
{
if (string.IsNullOrEmpty(Name))
return "";
var records = client.Query(Name, QueryType.A).Answers.ARecords();
var record = records.FirstOrDefault();
if(record != null)
{
return record.Address.ToString();
}
return "";
}
catch (Exception)
{
return "";
}
}
}
Мое типичное использование выглядит следующим образом:
var dnsServer = Config.GetDnsServer();
var dnsPort = Config.GetDnsPort();
var dnsHelper = new IBDnsHelper(dnsServer, dnsPort);
Console.WriteLine(dnsHelper.ResolveName("foo.com"));
Как я могу использовать ninject для этих строк кода?