让DynamicObect的TryGetMember和TrySetMember返回C#中的类

我有一个继承自的类。 在该类中,我尝试评估一个静态类。DynamicObject

TryGetMember


在静态类中如何TryGetMember从DynamicObject结果中覆盖?


TL; DR


调用代码:


dynamic sut = new ReachIn();

sut.myclass.MyInnerStaticClass.MyProperty= "fortytwo";

我的DynamicObject班级试图返回myclass作为MyClass实例。


internal class ReachIn : DynamicObject

{

    public override bool TryGetMember(GetMemberBinder binder, out object result)

    {

        result = MyClass; // Does not compile.

        return true;

     }


    public override bool TrySetMember(SetMemberBinder binder, object value)

    {

        value = MyClass // Does not compile;

        return true;

    }

}

返回的内容在这里:


internal class MyClass

{

    internal static class MyInnerStaticClass

    {

        public static string MyProperty { get; set; }

    }

}

这个例子有点强迫。这只是一个动态对象的非常简化的示例,该对象使私有字段,属性,方法(和(尚未)类)可见以用于测试目的。我也知道不应以这种方式编写测试,但是我有一个深奥的理由。还是因为我可以。


蓝山帝景
浏览 503回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP