You are developing an application to update a users social status. You need to consume the service using Windows Communication Foundation (WCF).
The client configuration is as follows.
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name=”SocialConfig”>
<security mode=”TransportCredentialOnly”>
<transport clientCredentialType=”Basic”
?realm=”Social API” />
</security>
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint address=”http://contoso.com”
binding=”webHttpBinding”
bindingConfiguration=”SocialConfig”
contract=”ISocialStatus”
name=”SocialClient” />
</client>
</system.serviceModel>
The service contract is defined as follows.
[ServiceContract]
public interface ISocialStatus
{
[OperationContract]
[WebInvoke(UriTemplate =
“/statuses/update.xml?status={text}”)]
void UpdateStatus(string text);
}
Which code segment should you use to update the social status?
A.
using (WebChannelFactory<ISocialStatus> factory =
new WebChannelFactory<ISocialStatus>(“SocialClient”))
{
factory.Credentials.UserName.UserName = user.Name;
factory.Credentials.UserName.Password = user.Password;
ISocialStatus socialChannel = factory.CreateChannel();
socialChannel.UpdateStatus(newStatus);
}
B.
using (ChannelFactory<ISocialStatus> factory =
new WebChannelFactory<ISocialStatus>(typeof(ISocialStatus)))
{
factory.Credentials.UserName.UserName = user.Name;
factory.Credentials.UserName.Password = user.Password;
ISocialStatus socialChannel = factory.CreateChannel();
socialChannel.UpdateStatus(newStatus);
}
C.
using (ChannelFactory<ISocialStatus> factory =
new ChannelFactory<ISocialStatus>(“POST”))
{
factory.Credentials.Windows.ClientCredential.UserName =
user.Name;
factory.Credentials.Windows.ClientCredential.SecurePassword.
SetAt(0, Convert.ToChar(user.Password));
ISocialStatus socialChannel = factory.CreateChannel();
socialChannel.UpdateStatus(newStatus);
}
D.
using (WebChannelFactory<ISocialStatus> factory =
new WebChannelFactory<ISocialStatus>(typeof(ISocialClient)))
{
factory.Credentials.Windows.ClientCredential.UserName =
user.Name;
factory.Credentials.Windows.ClientCredential.SecurePassword.
SetAt(0, Convert.ToChar(user.Password));
ISocialStatus socialChannel = factory.CreateChannel();
socialChannel.UpdateStatus(newStatus);
}