Я экспериментирую с созданием концепции загрузки сервиса WCF. Я частично обнаружил следующее в сообщениях блога в сети:
namespace GreenWebMediaService
{
[ServiceContract]
public interface IMediaServer
{
[OperationContract]
void UploadData(UploadFile data);
}
// Use a data contract as illustrated in the sample below
// to add composite types to service operations.
[DataContract]
public class UploadFile
{
public UploadFile() { }
[MessageHeader]
public string MetaData { get; set; }
[MessageBodyMember]
public Stream data { get; set; }
}
}
Я запускаю его (хостинг в Visual Studio) и делаю ссылку из только что созданного приложения Windows Form, это моя ссылка из app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMediaServer" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00"
sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" messageEncoding="Text"
textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192"
maxArrayLength="16384" maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:49689/MediaServer.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IMediaServer"
contract="mediaServer.IMediaServer"
name="BasicHttpBinding_IMediaServer" />
</client>
</system.serviceModel>
</configuration>
когда я создаю его экземпляр и обращаюсь к нему следующим образом:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
IMediaServer mediaServer = new mediaServer.MediaServerClient();
UploadFile file = new UploadFile();
mediaServer.UploadData(null);
}
}
Когда я обращаюсь к переменной «file», она имеет только свойство «file.ExtensionData», тогда как я ожидаю, что получу доступ к свойствам, которые я сделал в своем классе «UploadFile». Что мне не хватает? Я попытался сделать галочку в диалоге настройки в Visual Studio, поскольку нашел эту информацию в других темах, но все же не повезло: см. Мой диалог здесь: http://screencast.com/t/NzhhNzM3Y2Q (извините, я не знаю, как долго будет работать screencast.com это изображение)