powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Проблема при сериализации There was an error reflecting 'Item' (xsd <xs:choice>)
2 сообщений из 2, страница 1 из 1
Проблема при сериализации There was an error reflecting 'Item' (xsd <xs:choice>)
    #38660474
Фотография Bator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть некий wsdl, который отдает xsd, содержащий блок <xs:choice> с таким текстом:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
...
	<xs:complexType name="Contract">
		<xs:annotation>
			<xs:documentation>Договор</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:element minOccurs="1" name="Owner" type="Person">
					<xs:annotation>
						<xs:documentation>физическое лицо</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="OwnerJuridical" type="JuridicalPerson">
					<xs:annotation>
						<xs:documentation>юридическое лицо</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
...      
		</xs:sequence>
	</xs:complexType>
...



т.е. обязательный элемент или Owner типа Person или OwnerJuridical типа JuridicalPerson

WsdlImporter генерит класс:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(WrapperName="AddContract", WrapperNamespace="что-то_там", IsWrapped=true)]
    public partial class AddContractRequest {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
        [System.Xml.Serialization.XmlElementAttribute(" Owner", typeof(Person), Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [System.Xml.Serialization.XmlElementAttribute(" OwnerJuridical", typeof(JuridicalPerson), Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public object Item;
    ...



При вызове метода AddContractRequest генерится ошибка:
There was an error reflecting 'Item' .

Как с этим быть?
...
Рейтинг: 0 / 0
Проблема при сериализации There was an error reflecting 'Item' (xsd <xs:choice>)
    #38862069
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите. А как вообще такой механизм (xs:choice) реализуется в WCF ?

Через наследование от одного базового класса ?

Как нужно спроектировать классы, чтобы в итоге по Mex запросу отдавалась WSDLка с (xs:choice) ?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Проблема при сериализации There was an error reflecting 'Item' (xsd <xs:choice>)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]