Почему делает веб-сервис, Указанный Атрибут DataMember должен быть установлен для интервала и Данных, но не для Строки

По-видимому, является спорным, что IDE, следует проверить , чтобы увидеть, могут ли они связать код они создают, прежде чем тратить время компиляции

Но я придерживаюсь мнения, что я не должен скомпилируйте миллионы строк кода только для того, чтобы понять, что Windows пытается заблокировать файл, который я пытаюсь создать, потому что у другого программиста есть странная проблема с многопоточностью, которая требует от него отложить выгрузку DLL на 3 минуты после того, как они не должны использоваться ,

7
задан pnuts 26 October 2015 в 03:49
поделиться

3 ответа

Параметры по умолчанию для атрибута DataMember:

bool EmitDefaultValue (default true)
bool IsRequired (default false)

Если свойство, которое вы предоставляете, является типом значения, не допускающим значения NULL, вам следует используйте:

[DataMember(IsRequired = true)]
public int InvoiceNo;
9
ответ дан 6 December 2019 в 19:41
поделиться

You could read the explanation here.

Quote from XmlSerializer:

If a schema includes an element that is optional (minOccurs = '0'), or if the schema includes a default value, you have two options. One option is to use System.ComponentModel.DefaultValueAttribute to specify the default value, as shown in the following code. Another option is to use a special pattern to create a Boolean field recognized by the XmlSerializer, and to apply the XmlIgnoreAttribute to the field. The pattern is created in the form of propertyNameSpecified. For example, if there is a field named "MyFirstName" you would also create a field named "MyFirstNameSpecified" that instructs the XmlSerializer whether to generate элемент XML с именем «MyFirstName».

Единственный приемлемый для меня обходной путь, который я до сих пор использовал, - это использовать XmlSerializer вместо DataContractSerializer с помощью XmlSerializerFormatAttribute .

3
ответ дан 6 December 2019 в 19:41
поделиться

Также вы можете использовать [DataMember (isRequired = True)]

1
ответ дан 6 December 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: