बनाने का सबसे पोर्टेबल तरीका क्या है, मैं डब्ल्यूसीएफ का उपयोग करके कुछ स्थिति जानकारी का खुलासा करने के लिए सर्वर एप्लिकेशन प्राप्त करने का प्रयास कर रहा हूं। विशेष रूप से मैं आरएसटीएफ "एपीआई" के साथ डब्ल्यूसीएफ सेवाओं का उपयोग करने के बाद हूं। मैं एक दीवार के कुछ मार कर रहा हूँ जब यह लेने वाली एक Silverlight एप्लिकेशन/पेज है कि मैं ग्राहक एक अन्य प्रकार के रूप में करना चाहते हैं से REST API की बात आती है ...सिल्वरलाइट और नियमित .NET REST क्लाइंट
अब तक मैं करने में सफल रहे गए हैं
public static class StatusUriTemplates
{
public const string Status = "/current-status";
public const string StatusJson = "/current-status/json";
public const string StatusXml = "/current-status/xml";
}
[ServiceContract]
public interface IStatusService
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json, UriTemplate = StatusUriTemplates.StatusJson)]
StatusResultSet GetProgressAsJson();
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = StatusUriTemplates.StatusXml)]
StatusResultSet GetProgressAsXml();
[OperationContract]
[WebGet(UriTemplate = StatusUriTemplates.Status)]
StatusResultSet GetProgress();
}
सर्वर में यह लागू करने:
:[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class ServerStatusService : IStatusService
{
public StatusResultSet GetProgressAsJson()
{ return GetProgress(); }
public StatusResultSet GetProgressAsXml()
{ return GetProgress(); }
public StatusResultSet GetProgress()
{
return StatusResultSet.Empty;
}
}
कार्यावधि में मेरी कोड से संपर्क में लाने वाला स्थिति इंटरफेस को परिभाषित
मैं भी एक .NET कंसोल/winfoems/WPF आवेदन से सेवा लेने वाली इस की रेखा के साथ कुछ का उपयोग कर के साथ सफल किया गया है:
var cf = new WebChannelFactory<IStatusService>(new Uri("http://localhost:8000/server/status"));
var ss = cf.CreateChannel();
Console.WriteLine(ss.GetProgress().TimeStamp);
"दीवार" मैं मार रहा है कि है वहाँ SliverLight के लिए कोई WebChannelFactory नहीं है।
अवधि।
इसका मतलब यह है कि जब यह Silverlight कोड की बात आती है, मेरे विकल्प हैं:
- लिखें बदसूरत कोड WebClient, जो अंततः मतलब है जब भी मैं एक परिवर्तन किया है मैं होगा कोड के दो सेट को अद्यतन करने का उपयोग कर मेरी एपीआई
- उपयोग साबुन/WebService के लिए WS और से सेवा संदर्भ को अद्यतन करने के रखने के दृश्य स्टूडियो के लिए
क्या Silverlight में WebChannelFactory के साथ "साफ" कार्यान्वयन रखने का कोई तरीका है? शायद सिल्वरलाइट के लिए एक सार्वजनिक डोमेन/ओपन सोर्स WebChannelFactory?
इसके साथ किसी भी मदद की सराहना की जाएगी!
उस पर कोई प्रगति? – andrecarlucci