Можно ли доверять $ _SERVER ['REMOTE_ADDR']?

У меня есть веб-сайт, на котором только несколько человек могут получить к нему доступ, поэтому количество зарегистрированных IP-адресов очень ограничено. Все, что отправлено зарегистрированными «администраторами», отправляется в определенную папку, зависящую от их IP-адреса. Опять же, они не могут получить доступ к веб-сайту через прокси-сервер или что-то еще, потому что разрешен ограниченный диапазон IP-адресов. {[XmlTextAttribute] публичная строка Имя {get; установлен; } [XmlAttribute ("Color")] общедоступная строка Color {get; установлен; } } var hat1 = new Hat {Name = "Cool Hat", Color = "Red"}; ...

public class Hat
{
    [XmlTextAttribute]
    public string Name { get; set; }
    [XmlAttribute("Color")]
    public string Color { get; set; }
}

var hat1 = new Hat {Name="Cool Hat", Color="Red"};
var hat2 = new Hat {Name="Funky Hat", Color=null};

Вот что я получаю (обратите внимание на отсутствие атрибута цвета в Funky Hat):

<Hats>
 <Hat Color="Red">Cool Hat</Hat>
 <Hat>Funky Hat</Hat>
</Hats>

Это то, что я хочу:

<Hats>
 <Hat Color="Red">Cool Hat</Hat>
 <Hat Color="">Funky Hat</Hat>
</Hats>

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

РЕДАКТИРОВАТЬ:

Оказывается, я идиот и создал пример, содержащий ошибку, потому что я хотел упростить код для этого примера.

Если значение color равно "" (или string.empty), оно фактически сериализуется как пустой атрибут. Однако у меня действительно было нулевое значение, а не пустая строка - поэтому оно было исключено.

Так что поведение, которое я хотел, на самом деле уже было поведением созданного мной примера.

Извините, ребята!

13
задан Kjensen 29 April 2011 в 17:39
поделиться