Запутанность кода Silverlight

В дополнение к ответу Мохмада S , для реализации fetchPhotos, кажется, что использование перечислений было бы более уместным, потому что в параметре completion мы задаем как «результат ИЛИ ошибка». [117 ]

Вы можете реализовать что-то вроде:

enum CustomError: Error {
    case notFound
}

enum Result {
    case success(T)
    case failure(CustomError)
}

protocol Switchable: Decodable { }
struct Video: Switchable { }
struct Photo: Switchable { }

Следовательно, fetchPhotos как:

func fetchPhotos(url: String, completion: @escaping (Result<[Switchable]>) -> Void) {
    // in case of error:
    let error: CustomError? = CustomError.notFound
    if let error = error {
        completion(.failure(error))
    }

    // in case of success - videos:
    completion(.success([Video(), Video()]))

    // in case of success - photos:
    completion(.success([Photo(), Photo()]))
}

Называя это как:

fetchPhotos(url: "...") { result in
    switch result {

    case .success(let photos):
        // in case of photos
        if let photos = photos as? [Photo] { /**/ }

        // in case of videos
        if let videos = photos as? [Video] { /**/ }

        // in case of mix of photos and videos, you should iterate through it and check each object
        photos.forEach({ photo in
            if let media = photo as? Photo {

            } else if let media = photo as? Video {

            }
        })

    case .failure(let error):
        print(error.localizedDescription)

    }
}

5
задан GEOCHET 1 June 2009 в 17:24
поделиться

5 ответов

The version of Dotfuscator Community Edition that will ship with Visual Studio 2010 will support obfuscation of both Silverlight 2 and Silverlight 3 assemblies.

1
ответ дан 14 December 2019 в 01:17
поделиться

http://code.google.com/p/babelobfuscator/ пока бесплатный и крутой :)

1
ответ дан 14 December 2019 в 01:17
поделиться

Я пока не видел хорошего и бесплатного обфускатора для Silverlight. Вот хороший обзор некоторых дешевых обфускаторов: http://www.olsonsoft.com/blogs/stefanolson/post/Selecting-an-obfuscator-for-Silverlight.aspx. The author choosed .NET Reactor as favorit obfuscator.

1
ответ дан 14 December 2019 в 01:17
поделиться

Я рад сообщить вам, что вам больше не нужно вручную исключать типы и члены из обфускации Сборки Silverlight. Фактически, вам вообще не нужно ничего исключать.

CodeFort - первый обфускатор, который ввел переименование XAML и BAML. Это означает, что ссылки на типы и члены внутри кода XAML и BAML будут обновляться синхронно с остальной частью обфускации - и при этом нет необходимости оставлять большие части кода незащищенными, как это делают сегодня все другие обфускаторы.

Если вы хотите убедиться в этом сами, скачайте бесплатную версию CodeFort с нашего веб-сайта: http://codefort.org/download

Надеюсь, это поможет,

Кристиан

codefort.org

2
ответ дан 14 December 2019 в 01:17
поделиться

PreEmptive Solutions находится на заключительном этапе бета-тестирования последней версии Dotfuscator, которая расширяет защиту за пределы сборки Silverlight и ресурсов XAML. (Такая поддержка уже работает для WPF / BAML). У этого есть три преимущества; Большая часть вашей сборки защищена, ваш XAML защищен, и вы экономите время, так как настройка теперь намного проще (больше никаких исключений).

Если вы хотите стать кандидатом на бета-тестирование, напишите мне (скрыто), и наша служба поддержки пришлет вам учетные данные. Имейте в виду, что это бета-версия, плата за нее не взимается, и у вас будет доступ к нашей поддержке, но вы не можете использовать эту версию для какой-либо производственной работы.

Единственными требованиями к программному обеспечению являются .NET 1.1 или выше и Silverlight 2 или выше. (Да - протестируйте это в Windows Mobile 7, Windows Azure, ...)

Еще несколько вещей, которые следует учитывать:

• Аналитика (отслеживание функций и использования) также может быть введена после компиляции

• Аналитика также поддерживает Expression Blend Silverlight Analytics Framework (позволяя одновременно выполнять веб-аналитику во время разработки и инструментарий после компиляции).

• Dotfuscator использует файлы XAP, а не сборки, и автоматически подписывает их заново, что значительно упрощает ваши сборки.

• Dotfuscator также является эффективным «обрезчиком», сокращающим ваши приложения Silverlight по пути…

Дополнительную информацию о нашей «универсальной поддержке Silverlight» см. В нашем объявлении TechEd по адресу http: //www.preemptive. com / news-events / press-Release / 307

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

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