2009-10-30 4 views
1

Могу ли я реализовать SOAP-сервис, который может иметь дело с делегатами/событиями? Могу ли я также использовать потоки с SOAP? Как это выглядит на C#?SOAP с событиями в C#?

спасибо, эль

+0

SOAP имеет функцию исключения: ошибки (http://msdn.microsoft.com/de-de/library/aa480514.aspx?ppud=4) – elCapitano

ответ

2

Протокол SOAP основан на вершине HTTP поэтому не может выступать в качестве службы «PUSH», не делая тяжелые трюки => вы не можете легко создавать веб-сервиса на основе событий в ASP.NET.

Вы не можете использовать потоки, но вы можете передавать двоичное содержимое с использованием параметров byte [] или возвращаемых типов. Вот как это выглядит на C#:

///Server side 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
public class Service1 : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public byte[] GetFile(string fullName) 
    { 
     return File.ReadAllBytes(fullName); 
    } 
} 

///Client Side 
private void button1_Click(object sender, EventArgs e) 
{ 
    Service1 client = new Service1(); 
    pictureBox1.Image = Image.FromStream(
     new MemoryStream(
      client.GetFile("c:\\apple.jpg"))); 
} 

Всё.