使用反射在struct中获取struct

时间:2014-02-17 11:46:32

标签: c# reflection struct

我在访问结构

中的结构时遇到问题
namespace Some.NameSpace.ToAccess
{
    public struct HowTo
    {
        public const string Some_Static_Strings = "redudantString";
        public const string SomeOtherStatic_Strings = "someOtherRedundantString";
        public const string Option3 = SomeOption";

        public struct AccessMe
        {
            public static readonly string OPTION1 = 1.ToString;
            public static readonly string OPTION2 = 2.ToString;
            public static readonly string OPTION3 = 4.ToString;
            public static readonly string OPTION0 = 0.ToString;

            static AccessMe()
            {
            }
        }
    }
}

我已经查看了其他类似的问题但是我的不同之处在于我还在运行时加载程序集而不是仅仅使用反射来在运行时获取特定结构的内容。所以为了重新输入,我没有引用我在运行时之前尝试过的库。

这与我的问题Get struct within struct using reflection非常相似,但我无法做到

FieldInfo FI = typeof(HowTo).GetType().GetField("Collection", BindingFlags.Public | BindingFlags.Instance);

因为我需要先获取类型,但这也不起作用

var result = _someClass.PreLoadedAssembly.GetType("Some.NameSpace.ToAccess.HowTo").GetField("AccessMe", BindingFlags.Public | BindingFlags.Instance);

(PreLoadedAssembly是我在运行时加载并存储在_someClass中的程序集)

任何帮助都会受到赞赏,因为我没有走得太远。 感谢

1 个答案:

答案 0 :(得分:2)

您应该使用GetNestedType方法:

_someClass.PreLoadedAssembly
          .GetType("Some.NameSpace.ToAccess.HowTo")
          .GetNestedType("AccessMe");