Вызов WCF из кода C

Я работаю с собственным клиентским приложением C (не созданным с помощью Visual Studio), которому необходимо вызывать службу WCF. Я создаю службу WCF, поэтому полностью контролирую ее.

Большая часть информации, которую я нашел, касается вызова WCF из неуправляемых клиентов C ++.

Кто-нибудь пробовал WWSAPI?

Я надеюсь получить представление о том, возможно ли это вообще и какие технологии можно использовать. Любая помощь будет принята с благодарностью!


person Edward Leno    schedule 09.02.2012    source источник
comment
Можете ли вы использовать привязку JSON / REST со своей службой WCF?   -  person Simon Mourier    schedule 09.02.2012
comment
Если клиент C будет единственным клиентом службы, и вы не собираетесь использовать какие-либо библиотеки WCF на стороне клиента, возможно, вы вообще не хотите создавать службу WCF?   -  person antlersoft    schedule 09.02.2012
comment
@Simon Mourier: Я могу использовать любую привязку ... Я новичок в WCF, поэтому можно ли использовать справку по привязке JSON / REST?   -  person Edward Leno    schedule 09.02.2012
comment
@mekici: Все в Windows, и у меня могут быть требования для Windows 7 и выше, если необходимо, чтобы это работало.   -  person Edward Leno    schedule 09.02.2012


Ответы (2)



WCF очень мощный и настраиваемый, он позволяет использовать множество различных привязок (HTTP, Sockets, MSMQ, custom и т. Д.). Я полагаю, что начиная с версии 3.5 вы можете использовать привязки и контракты JSON / REST. Вот официальная ссылка об этом: Обзор REST в WCF и некоторые примеры здесь: WCF 4 JSON REST Service и здесь: Служба REST с WCF и JSON.

Итак, почему REST и JSON? потому что эти процедуры очень легкие и не нуждаются в огромных зависимостях или библиотеках. Фактически в этом и заключалась суть REST, в отличие от SOAP.

Таким образом, вам понадобится только стек TCP / HTTP и парсер JSON на стороне клиента, что позволяет относительно легко программировать на C. Вот ссылка на простую библиотеку JSON: Янссон

person Simon Mourier    schedule 09.02.2012
comment
Приношу свои извинения (нуб), но я не понимаю, что такое «стек TCP / HTTP»? Я контролирую привязки WCF и могу это изменить, но как мне подключить Jansson к стеку TCP / HTTP? - person Edward Leno; 10.02.2012
comment
@EdwardLeno - HTTP-стек - это небольшая библиотека, которая позволяет клиентам C подключаться к HTTP-серверу. TCP подразумевается HTTP. Подробнее см. Здесь, в SO: stackoverflow.com/questions/3243209/http-stack-in-c - person Simon Mourier; 10.02.2012
comment
Я попробовал несколько клиентов, но не смог заставить их работать с моей ситуацией. Меня интересовал cURL, и я, вероятно, буду использовать его для других проектов. Спасибо. Кстати, я пошел с gSOAP, который работает. - person Edward Leno; 23.02.2012