2008-10-17 4 views
4

В этом классе, например, я хочу заставить предел символов, которые может разрешить имя/фамилия.Как заставить максимальную длину строки в свойстве объекта веб-службы C#?

public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

Есть ли способ заставить ограничение предельной строки для первого или последнего имени, так , когда клиент упорядочивает эту перед отправкой его мне, было бы бросить ошибку на их стороне, если он нарушает ограничение длины?

Обновление: это необходимо идентифицировать и принудительно в самом WSDL, а не после получения недопустимых данных.

ответ

0

Соедините свойство из свойства auto и подтвердите его самостоятельно, после чего вы можете выбросить исключение аргумента или что-то подобное, что им придется обрабатывать перед отправкой.

ПРИМЕЧАНИЕ. Если языки, отличные от .NET, будут звонить вам, скорее всего, захотят также проверить его на стороне службы. Или при минимальном тесте, чтобы посмотреть, как он будет работать на другом языке.

3

Вы можете использовать XML-схемы проверки (например, MAXLENGTH фасетки) с помощью SOAP Extensions:

[ValidationSchema("person.xsd")] 
public class Person { /* ... */ } 

<!-- person.xsd --> 

<?xml version="1.0"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <xsd:element name="Person" type="PersonType" /> 

    <xsd:simpleType name="NameString"> 
    <xsd:restriction base="xsd:string"> 
     <xsd:maxLength value="255"/> 
    </xsd:restriction> 
    </xsd:simpleType> 

    <xsd:complexType name="PersonType"> 
    <xsd:sequence> 
     <xsd:element name="FirstName" type="NameString" maxOccurs="1"/> 
     <xsd:element name="LastName" type="NameString" maxOccurs="1"/> 
    </xsd:sequence> 
    </xsd:complexType> 
</xsd:schema> 
10

некро время ... Стоит отметить, однако.

using System.ComponentModel.DataAnnotations; 
public class Person 
{ 
    [StringLength(255, ErrorMessage = "Error")] 
    public string FirstName { get; set; } 
    [StringLength(255, ErrorMessage = "Error")] 
    public string LastName { get; set; } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^