AllowReversePInvokeCallsAttribute做了什么?

时间:2011-08-10 22:26:38

标签: .net pinvoke

我已经完成了反向pInvokes而没有使用这个属性。我从文档中注意到它是在3.5中添加的,但是文档没有提供如何使用它或描述它的功能的任何示例。有人可以说出它的作用,并举例说明如何使用它以及何时需要它?

2 个答案:

答案 0 :(得分:3)

参考资料中的评论提供了一些见解:

// 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是驱动Silverlight的CLR版本。在沙箱上很大。您不会在桌面版本中找到它,而是在Silverlight程序集中的所有位置使用它。示例是MS.Internal.FrameworkCallbacks类和System.Windows命名空间。看看Reflector吧。目的很明确,当CLR将调用从本机调用到托管时,它会检查是否应该调用托管方法。

答案 1 :(得分:1)

不应该是used

  

此API支持.NET Framework基础结构,但不支持   旨在直接从您的代码中使用。