gpt4 book ai didi

asp.net-mvc - 无法使 Type.GetType(string TypeName) 方法和 MemberInfo.CustomAttributes 属性在 DNX Core 5.0 中可用

转载 作者:行者123 更新时间:2023-12-02 07:39:17 25 4
gpt4 key购买 nike

我正在尝试获取 Controller 的属性和 Controller 的方法,但我似乎无法在 DNX Core 5.0 中提供必要的方法和属性。我想获取用户访问给定方法所需的角色。例如,如果我有这个

 [Authorize(Roles = "Admin")]
public class UserController : Controller
{
public IActionResult Index()
{
return View();
}
}

我希望能够得知用户需要管理员角色才能访问此 Controller 。我的 dnxcore50 的 project.json 文件如下所示:

"dnxcore50": {
"dependencies": {
"System.Collections": "4.0.10-beta-*",
"System.Collections.Concurrent": "4.0.10-beta-*",
"System.IO": "4.0.10-beta-*",
"System.Linq": "4.0.0-beta-*",
"System.Linq.Expressions": "4.0.10-beta-*",
"System.Reflection": "4.0.10-beta-*",
"System.Reflection.Emit": "4.0.0-beta-*",
"System.Reflection.Emit.Lightweight": "4.0.0-beta-*",
"System.Reflection.Extensions": "4.0.0-beta-*",
"System.Reflection.TypeExtensions": "4.0.0-beta-*",
"System.Reflection.Primitives": "4.0.0-beta-*",
"System.Runtime": "4.0.20-*",
"System.Runtime.Extensions": "4.0.10-beta-*",
"System.Runtime.CompilerServices.VisualC": "4.0.0-beta-*",
"System.Runtime.InteropServices": "4.0.20-beta-*",
"System.Text.Encoding": "4.0.10-beta-*",
"System.Text.RegularExpressions": "4.0.10-beta-*",
"System.Threading": "4.0.10-beta-*"
}
}

关于如何获得必要的方法/属性以在 DNX Core 5.0 中可用的任何想法,或者对于如何解决此问题有任何其他建议吗?

最佳答案

如果你查看 github 上的源代码,你可以看到它是如何处理的(第 94 行):

https://github.com/aspnet/Mvc/blob/eef6c3883a7e27b8387b0925f0b6a88df0a484c5/src/Microsoft.AspNet.Mvc.Core/ModelBinding/Metadata/ModelAttributes.cs

如您所见,您必须使用 GetTypeInfo() 才能使用 GetCustomAttributes() 方法。在您的代码中,您可以执行以下操作:

using System.Reflection;
...
obj.GetType().GetTypeInfo().GetCustomAttributes();

关于asp.net-mvc - 无法使 Type.GetType(string TypeName) 方法和 MemberInfo.CustomAttributes 属性在 DNX Core 5.0 中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30897796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com