C# 如何将其降级到基类?

C# 如何将其降级到基类?,c#,C#,我有这个类层次结构: public abstract class AClass : SomeFrameworkClass { [WorkOnThisProperty(With.Some.Context)] private MyObject MyProperty { get; set; } public override void OnSomethingHappened() { ExternalFramework.WorkOn(this); } } public c

我有这个类层次结构:

public abstract class AClass : SomeFrameworkClass {
  [WorkOnThisProperty(With.Some.Context)]
  private MyObject MyProperty { get; set; }  

  public override void OnSomethingHappened() {
    ExternalFramework.WorkOn(this);
  }
}

public class BClass : AClass {
  // ... Snip ...
}
ExternalFramework
正在
this
上运行:
BClass
的一个实例,但我需要它作为
AClass
的一个实例在
this
上运行,因为
ExternalFramework
只对传入的对象的类型起作用,而不上继承层次结构。我如何才能将
向下转换到
AClass
中,以便
ExternalFramework
能够实际检测
MyProperty

我尝试将
强制转换为
对象
,然后转换为
AClass
,并将其直接转换为
AClass
,但由于强制转换是不必要的,因此它似乎无法运行。我能做些什么


编辑:
ExternalFramework
is。我试图将几个视图注入到一个具有所有可重用逻辑的基本片段类中,而子片段类实现一些特定的行为调整。

问题是,一个类的所有私有成员只能在同一个类中访问

使用此代码:

class A { private string Property { get; set; } }
class B : A { public string Proxy => Property; }
我们将得到编译错误,因为类
B
无法从类
A
访问私有属性,但是如果将关键字更改为
受保护的

class A{受保护的字符串属性{get;set;}}


它应该起作用。

将财产公开或至少加以保护。私有财产没有多大意义。向下转换不允许您使用parent的私有字段、属性或方法。如果代码只调用
GetType()
,您将无能为力。。。除非你解释/展示“外部框架”是如何使用类型的,否则答案就没有多大希望了。@PanagiotisKanavos说对了。我现在觉得很傻。