Использование Ninject с DnsClient.NET - PullRequest
0 голосов
/ 27 августа 2018

Я использую библиотеку 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 для этих строк кода?

...