Частичные классы, LINQ, интерфейсы и VB.NET

Вы никогда не можете контролировать поле ввода формы. Если вы когда-либо предполагали это, переосмыслите эти решения, потому что: Вы никогда не можете доверять данным от / клиента . По крайней мере половина людей в StackOverflow знают, как манипулировать вашими формами, однако мы не можем изменить код вашего сервера.

То, что вы хотите, - это дезинфекция, прежде чем вводить ее в свою базу данных. Вы можете либо очистить его и вставить его, либо проверить, если он чистый, если не выдает ошибку. Я сделал быстрый пример на PHP:

$cleanVariable = preg_replace("/[^A-Z0-9]/s", '', $variable);

// OR:

if( !preg_match("/^[A-Z0-9]$/s", $variable) ){
    throw new Exception("does not match");
}

И вы можете использовать strtoupper (), чтобы всегда делать его заглавными.


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

<!-- Inline isnt preferred, but for demo: -->
<input onChange="cleanThisInput(this.value)" />
5
задан Coppermill 23 January 2009 в 14:55
поделиться

2 ответа

Определенная косвенность в частичном классе должна добиться цели...

Public Property AssetId() As Int32 Implements IAsset.AssetId
    Get
        Return Id1
    End Get
    Set(ByVal value As Int32)
        Id1 = value
    End Set
End Property

Свойство, которое реализует интерфейс, называет фактическое свойство сгенерированным dbml. Класс будет по существу иметь два идентификационных свойства, который не очень изящен, но при доступе через интерфейс Вы не будете знать различия.

6
ответ дан 14 December 2019 в 09:02
поделиться

Нет никакого окольного пути этого. Это - дефект в том, как VB вынуждает Вас обработать реализацию интерфейсов.

Вы могли создать отдельную библиотеку для своего LINQ к Объектам, который был в C#. Я не уверен, могли ли Вы просто поместить частичные классы в отдельный проект и сохранить основы в VB один. Я никогда не пробовал это.

1
ответ дан 14 December 2019 в 09:02
поделиться
Другие вопросы по тегам:

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