从外部 DLL

时间:2021-04-06 21:33:50

标签: c#

我一定让这件事变得更难了。我正在使用 Assembly.LoadFile 尝试检查我正在加载的 DLL 中的单个属性。问题在于,该属性实际上是 DLL 的基本 DLL 的一部分(不确定这是否有所不同)。我可以在 QuickView 中找到我要检索的属性,但我还没有从代码中找到该属性。我想你们中的一个聪明人可以很快地向我展示到达我寻找的财产的正确路径或算法。

QuickView 路径为: ((System.Reflection.PropertyInfo[])((System.Reflection.TypeInfo)((System.Reflection.RuntimePropertyInfo)baseMembers[32]).PropertyType).DeclaredProperties)[0]

enter image description here

这是迄今为止我拥有的代码,它确实让我了解了该属性,但我还找不到内置于 DLL 中的任何属性的值。

            var loadedFile = Assembly.LoadFrom(filePath);

            var types = loadedFile.GetTypes();
            foreach (var type in types)
            {
                if (!type.Name.Contains("MpIntegrator"))
                    continue;

                var baseMembers = type.BaseType.GetMembers();

                foreach (var baseMember in baseMembers)
                {
                    if (baseMember.Name != "Features")
                        continue;

                    var props = baseMember?.DeclaringType?.GetProperties();
                    var propType = (((System.Reflection.PropertyInfo) props[4]).PropertyType);
                    var decalProperties = ((System.Reflection.TypeInfo)propType).DeclaredProperties;

                    if (decalProperties != null)
                        foreach (var prop in decalProperties)
                        {
                            if (prop.Name.Contains("Registration"))
                            {
                                //This doesn't work
                                registration = prop.ToString();
                            }
                        }
                }
            }

有人有检索 MemberInfo 对象的 DeclaredProperties 的方法吗?

谢谢。

0 个答案:

没有答案
相关问题