Что делает атрибут AllowReversePInvokeCallsAttribute? - PullRequest
2 голосов
/ 11 августа 2011

Я сделал обратные pInvokes и не использовал этот атрибут. Из документации я отмечаю, что он был добавлен в 3.5, но в документах не приводится пример того, как его использовать, и не описывается, что он делает. Может кто-нибудь сказать, что он делает, и привести пример того, как его можно использовать и когда это необходимо?

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

Комментарий в справочном источнике дает некоторое представление:

// To be used on methods that sink reverse P/Invoke calls.
// This attribute is a CoreCLR-only security measure, currently ignored by the desktop CLR.
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public sealed class AllowReversePInvokeCallsAttribute : Attribute
{
    public AllowReversePInvokeCallsAttribute()
    {
    }
}

CoreCLR - версия CLR, которая управляет Silverlight.Большой на песочнице.Вы не найдете его вообще в настольной версии, но везде в сборках Silverlight.Примерами являются класс MS.Internal.FrameworkCallbacks и пространство имен System.Windows.Посмотрите на Reflector.Идея ясна: когда CLR выполняет маршалинг вызова от нативного к управляемому, он проверяет, ожидается ли запуск управляемого метода.

1 голос
/ 11 августа 2011

Это не значит, что используется :

Этот API поддерживает инфраструктуру .NET Framework и не является предназначен для использования непосредственно из вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...