Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Раскрыть DataSet в SOAP
|
|||
|---|---|---|---|
|
#18+
Есть Web Service, в нем функция, получающая параметры, один из которых должен быть DataSet, т.е. SOAP запрос должен выглядеть: POST /TestService/Service1.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/TestService/Service1/ProviderSync" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ProviderSync xmlns="http://tempuri.org/TestService/Service1"> <username>string</username> <password>string</password> <ProviderRecords> <Provider> <ProviderID>int</ProviderID> <Status>string</String> <Contact> <ContactName>string</ContactName> <Status>string</String> </Contact> <Contact> <ContactName>string</ContactName> <Status>string</String> </Contact> </Provider> </ProviderRecords> </ProviderSync> </soap:Body> </soap:Envelope> т.е. 3 параметр ProviderRecords - DataSet. Создаю типизированный датасет, он в SOAP отображается как <ProviderRecords>dataset</ProviderRecords> В WSDL подцепляется .xsd, а не разбивка по элементам. Пишу Web-сервис первый раз, помогите кто может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2006, 18:41 |
|
||
|
Раскрыть DataSet в SOAP
|
|||
|---|---|---|---|
|
#18+
Долго ждал ответа, пришлось искать самому. DataSet в .net нет раскроешь. Почему, можно почитать на http://searchwebservices.techtarget.com/tip/0,289483,sid26_gci1048679,00.html. Одно из решений - создавать массив из элементов класса, потом на клиенте его загружать в DataSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 01:47 |
|
||
|
Раскрыть DataSet в SOAP
|
|||
|---|---|---|---|
|
#18+
2ras:Одно из решений - создавать массив из элементов класса, потом на клиенте его загружать в DataSet Проще говоря пихаем DataSet -> XmlDataDocument -> string -> byte[] и толкаем на веб сервис где просто берём строку и считываем напрямую в DataSet. Пример : Берём в качестве заготовки это http://www.aspnetmania.com/Articles/Article/13.html добавляем в WebServicesExample\nw.asmx.cs : [WebMethod] public void PushXml(byte [] xmlContent) { DataSet ds = new DataSet(); ds.ReadXml(new StringReader(System.Text.Encoding.ASCII.GetString(xmlContent))); ds.WriteXml(@"C:\Projekte\WebServicesExample\ds.xml"); } а в WebServiceWinClient\Form1.cs заменяем btnOrders_Click н этот метод : private void btnOrders_Click(object sender, System.EventArgs e) { WebServiceWinClient.localhost.NorthWindWebService orders = new WebServiceWinClient.localhost.NorthWindWebService(); DataSet ds = orders.GetCustOrders(txtClient.Text); dgMain.DataSource = ds; orders.PushXml(System.Text.Encoding.ASCII.GetBytes(new XmlDataDocument(ds).OuterXml)); } В результате в C:\Projekte\WebServicesExample\ds.xml нахожу : <?xml version="1.0" standalone="yes" ?> - <NewDataSet> - <Orders> <OrderID>10643</OrderID> <OrderDate>1997-08-25T00:00:00.0000000+02:00</OrderDate> <RequiredDate>1997-09-22T00:00:00.0000000+02:00</RequiredDate> <ShippedDate>1997-09-02T00:00:00.0000000+02:00</ShippedDate> </Orders> - <Orders> <OrderID>10692</OrderID> <OrderDate>1997-10-03T00:00:00.0000000+02:00</OrderDate> <RequiredDate>1997-10-31T00:00:00.0000000+01:00</RequiredDate> <ShippedDate>1997-10-13T00:00:00.0000000+02:00</ShippedDate> </Orders> - <Orders> <OrderID>10702</OrderID> <OrderDate>1997-10-13T00:00:00.0000000+02:00</OrderDate> <RequiredDate>1997-11-24T00:00:00.0000000+01:00</RequiredDate> <ShippedDate>1997-10-21T00:00:00.0000000+02:00</ShippedDate> </Orders> - <Orders> <OrderID>10835</OrderID> <OrderDate>1998-01-15T00:00:00.0000000+01:00</OrderDate> <RequiredDate>1998-02-12T00:00:00.0000000+01:00</RequiredDate> <ShippedDate>1998-01-21T00:00:00.0000000+01:00</ShippedDate> </Orders> - <Orders> <OrderID>10952</OrderID> <OrderDate>1998-03-16T00:00:00.0000000+01:00</OrderDate> <RequiredDate>1998-04-27T00:00:00.0000000+02:00</RequiredDate> <ShippedDate>1998-03-24T00:00:00.0000000+01:00</ShippedDate> </Orders> - <Orders> <OrderID>11011</OrderID> <OrderDate>1998-04-09T00:00:00.0000000+02:00</OrderDate> <RequiredDate>1998-05-07T00:00:00.0000000+02:00</RequiredDate> <ShippedDate>1998-04-13T00:00:00.0000000+02:00</ShippedDate> </Orders> - <OrderDetails> <ProductName>R?ssle Sauerkraut</ProductName> <UnitPrice>45.6000</UnitPrice> <Quantity>15</Quantity> <Discount>0.25</Discount> <OrderID>10643</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Chartreuse verte</ProductName> <UnitPrice>18.0000</UnitPrice> <Quantity>21</Quantity> <Discount>0.25</Discount> <OrderID>10643</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Spegesild</ProductName> <UnitPrice>12.0000</UnitPrice> <Quantity>2</Quantity> <Discount>0.25</Discount> <OrderID>10643</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Vegie-spread</ProductName> <UnitPrice>43.9000</UnitPrice> <Quantity>20</Quantity> <Discount>0</Discount> <OrderID>10692</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Aniseed Syrup</ProductName> <UnitPrice>10.0000</UnitPrice> <Quantity>6</Quantity> <Discount>0</Discount> <OrderID>10702</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Lakkalik??ri</ProductName> <UnitPrice>18.0000</UnitPrice> <Quantity>15</Quantity> <Discount>0</Discount> <OrderID>10702</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Raclette Courdavault</ProductName> <UnitPrice>55.0000</UnitPrice> <Quantity>15</Quantity> <Discount>0</Discount> <OrderID>10835</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Original Frankfurter gr?ne So?e</ProductName> <UnitPrice>13.0000</UnitPrice> <Quantity>2</Quantity> <Discount>0.2</Discount> <OrderID>10835</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Grandma's Boysenberry Spread</ProductName> <UnitPrice>25.0000</UnitPrice> <Quantity>16</Quantity> <Discount>0.05</Discount> <OrderID>10952</OrderID> </OrderDetails> - <OrderDetails> <ProductName>R?ssle Sauerkraut</ProductName> <UnitPrice>45.6000</UnitPrice> <Quantity>2</Quantity> <Discount>0</Discount> <OrderID>10952</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Escargots de Bourgogne</ProductName> <UnitPrice>13.2500</UnitPrice> <Quantity>40</Quantity> <Discount>0.05</Discount> <OrderID>11011</OrderID> </OrderDetails> - <OrderDetails> <ProductName>Flotemysost</ProductName> <UnitPrice>21.5000</UnitPrice> <Quantity>20</Quantity> <Discount>0</Discount> <OrderID>11011</OrderID> </OrderDetails> </NewDataSet> -- Если тебе помогли, незабудь сказать спасибо -- -- Это всё мое личное мнение которое может не совпадать с Вашим или может быть ошибочным -- .NetCoder ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 04:57 |
|
||
|
|

start [/forum/topic.php?fid=18&gotonew=1&tid=1390721]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 399ms |

| 0 / 0 |
