我已经完成了反向pInvokes而没有使用这个属性。我从文档中注意到它是在3.5中添加的,但是文档没有提供如何使用它或描述它的功能的任何示例。有人可以说出它的作用,并举例说明如何使用它以及何时需要它?
答案 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基础结构,但不支持 旨在直接从您的代码中使用。