var instance = new Implementation();
var extInstance = new ExtImplementation();
public interface ITransactions
void ExecuteTransaction();
public class DocumentNode : ITransactions
void ITransactions.ExecuteTransaction() => Console.WriteLine("Base ExecuteTransaction");
public ITransactions Transactions => (ITransactions) this;
public class ExtDocumentNode : DocumentNode, ITransactions
public void ExecuteTransaction() => Console.WriteLine("Overriden ExecuteTransaction");
public class Implementation : DocumentNode
public void Foo() => this.Transactions.ExecuteTransaction();
public class ExtImplementation : ExtDocumentNode
public void Foo() => this.Transactions.ExecuteTransaction();