Синхронизация Silverlight - PullRequest
       17

Синхронизация Silverlight

1 голос
/ 13 февраля 2011

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

[CustomValidation(typeof(SpecialValidator), "IsUniQueCountryCode")]

Это должно быть синхронизировано, чтобы метод мог иметь значение результата:

    public static ValidationResult IsUniQueCountryCode(string value) {
    if (value.Length > 0)
    {
        DSCountry _context = new DSCountry();
        ObservableCollection<MCountry> List = new ObservableCollection<MCountry>();
        LoadOperation<Country> loadOp = _context.Load((_context.GetCountryByCodeQuery(value)).Where(s => s.ISOCode == value));
        IEnumerable<Country> Entities;
        bool test = false;      
        loadOp.Completed += (s, e) =>
        {
            test = true;
        };

        //
        if (test == true)
        {
        }
        //
    }

    return ValidationResult.Success;
}

Как мне сделать нагрузку синхронной ?

1 Ответ

2 голосов
/ 13 февраля 2011

Silverlight не поддерживает синхронные сервисные вызовы. Поэтому, если вы не хотите использовать действительно уродливые хаки (см. Ссылку ниже), вам необходимо предварительно загрузить эту информацию при запуске приложения или найти способ перезаписать ее асинхронным способом.

http://www.codeproject.com/KB/silverlight/SynchronousSilverlight.aspx

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

...