Каков наилучший способ написать обработчик завершения

Microsoft Enterprise Library (ссылка на .NetTiers) была нашей проблемой, которая, в свою очередь, ссылалась на более старую версию Unity. Чтобы решить проблему, мы использовали следующее переадресацию привязки в файле web.config:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.414.0" newVersion="2.1.505.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity.Configuration" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.414.0" newVersion="2.1.505.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

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

2
задан mandem112 17 January 2019 в 13:11
поделиться

2 ответа

«Я делал это таким образом и нашел сообщение, в котором говорится, что оно может даже не выполняться»

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

Как сказал Ш_Кхан в своем ответе, вам на самом деле здесь не нужен обработчик завершения, вам нужно использовать методы делегата, чтобы получать информацию о его завершении и о том, был ли он успешным или нет. Но ваша особая проблема с вашим конкретным кодом заключается в том, что вы не вызываете завершение в операторе if.

if !self.canMakePayments {
    return
}

Вероятно, должно быть

guard canMakePayments else {
    completion()
    return
} 

В вашем коде, если canMakePayments имеет значение false, ваш код завершения не будет выполнен.

0
ответ дан Scriptable 17 January 2019 в 13:11
поделиться

Результат здесь асинхронный

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue)

или

func paymentQueue(_ queue: SKPaymentQueue, 
restoreCompletedTransactionsFailedWithError error: Error)
0
ответ дан Sh_Khan 17 January 2019 в 13:11
поделиться
Другие вопросы по тегам:

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