Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Web API (Server и API Контроллер)


Автор: Aleksandr8111 27.5.2015, 15:59
Уважаемые специалисты,
Подскажите как сделать правильно – избегая статических переменных
У меня есть класс WebServer наследуемый от IoServer
в конструктор я передаю разные параметры.  Хочу эти параметры передать в метод (например PUT) API контроллера
Как правильно реализовать такую "передачу" - какие технологии изучить? 

Спасибо всем)

Код

// web server
  class WebServer : IoServer
    {
        System.Threading.Tasks.Task  task = null;
        private string url= null;
        public WebServer(int threadId, string boardType, int busDelay, string url, IServerLogger logger)
            : base(threadId, boardType, busDelay, logger)
        {
            this.url = url;

        }

        public override void  CreateThread()
        {
            try
            {
                Console.WriteLine("Msg Drv WEB: Server open in async mode");
                var selfHostConfiguraiton = new HttpSelfHostConfiguration(url);
                selfHostConfiguraiton.Routes.MapHttpRoute(
                                                         name: "DefaultApiRoute",
                                                         routeTemplate: "api/{controller}",
                                                         defaults: null
                                                        );            
                using (var server = new HttpSelfHostServer(selfHostConfiguraiton))
                {
                    task = server.OpenAsync();
                    while (true)
                    {
                        Thread.Sleep(BusDelay);
                        task.Wait();
                    }
                } 
            }
            finally
            {
                    Console.WriteLine("Msg Drv WEB: Thread {0} is finished", ThreadId);
                    
            }
        }
    }


}

// Api Controller
public class TagNamesWriteController: ApiController
    {

        // PUT api/data</code>
        public void Put()
        {
         // Нужно получить данные конструктора WebServer'а
         // вывести в консоли  threadId, boardType и т.д.
        }
    }




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)