设置、获取AppDomain数据,然后测试,出现警告
在Visual Studio中测试以下代码Public Class MyAppDomain
Private domain As System.AppDomain
Private threadId As Integer
Public Sub SetDonmainData(ByVal name As String, ByVal value As String)
domain.SetData(name, CType(value, Object))
'threadId = System.AppDomain.GetCurrentThreadId() '过时的方法
threadId = Thread.CurrentThread.ManagedThreadId
End Sub
Public Function GetDomainData(ByVal name As String) As String
Return domain.GetData(name)
End Function
Public Shared Sub Main()
End Sub
End Class
运行代码分析时,提示警告
警告 5 CA2122 : Microsoft.Security : 'MyAppDomain.SetDonmainData(String, String)' 调入具有 LinkDemand 的 'AppDomain.SetData(String, Object)'。通过此调用,'AppDomain.SetData(String, Object)' 被间接公开给用户代码。检查以下可能公开避开安全保护的方法的调用堆栈:
->'MyAppDomain.SetDonmainData(String, String)'
->'MyAppDomain.SetDonmainData(String, String)'
如何修改,谢谢 AppDomain --------------------编程问答-------------------- 仅仅是警告,你可以不理它。如果你想规避它,这取决于你想做什么。把这行注释掉肯定没有警告了,但是是不是符合你的需求就不知道了。 --------------------编程问答-------------------- 你可以按照提示的那样改代码,但是有没有这个必要就要看你了 --------------------编程问答-------------------- 只要去掉类名称前的关键字Public,就不再提示警告了,这是为什么?
补充:.NET技术 , C#