Еще один быстрый способ - использовать getline
. Примерно так:
stringstream ss("bla bla");
string s;
while (getline(ss, s, ' ')) {
cout << s << endl;
}
Если хотите, вы можете создать простой метод split()
, возвращающий vector<string>
, что действительно полезно.
Наконец, я нашел ответ, и это было довольно просто. Мне просто нужно создать экземпляр службы и передать ссылку на конструктор ServiceHost.
Поэтому мне нужно заменить следующий код:
using (ServiceHost host = new ServiceHost(typeof(ApplicationRegistrationService),
new Uri[]{ new Uri("net.pipe://localhost")}))
на:
ApplicationRegistrationService myService = new ApplicationRegistrationService();
using (ServiceHost host = new ServiceHost(myService,
new Uri[]{ new Uri("net.pipe://localhost")}))
Если вы имеете в виду, что вам нужна двусторонняя связь между вашей службой мониторинга и вашими зарегистрированными службами или узлами, тогда вам, вероятно, следует использовать двустороннюю связь в WCF, также известную как дуплексная связь. Очень классный материал.
http://www.codeproject.com/KB/WCF/WCF_Duplex_UI_Threads.aspx