public static void Main()
var context = new OperationContext();
var entityContext = new EntityOperationContext();
PrintTest(entityContext);
public static void PrintTest(IOperationContext context) {
if(context is IEntityOperationContext) {
var entityContext = context as IEntityOperationContext;
Console.WriteLine(entityContext.getEntityTest());
Console.WriteLine(entityContext.getTest());
Console.WriteLine(context.getTest());
public interface IOperationContext {
public interface IEntityOperationContext : IOperationContext {
public string getEntityTest();
public class EntityOperationContext: IEntityOperationContext {
public string getEntityTest() {
return "IEntityOperationContext: Entity context test";
public string getTest() {
return "IEntityOperationContext: Context test";
public class OperationContext: IOperationContext {
public string getTest() {
return "IOperationContext: Context test";