From 7cd73426430db7ac5bfbdd33636566124bfaf743 Mon Sep 17 00:00:00 2001 From: Philemon Eichin Date: Thu, 12 Apr 2018 11:09:54 +0200 Subject: [PATCH] Implement TargetObjectContextProvider --- .../TargetObjectContextProvider.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 phirSOFT.ContextProperties/TargetObjectContextProvider.cs diff --git a/phirSOFT.ContextProperties/TargetObjectContextProvider.cs b/phirSOFT.ContextProperties/TargetObjectContextProvider.cs new file mode 100644 index 0000000..5d61e96 --- /dev/null +++ b/phirSOFT.ContextProperties/TargetObjectContextProvider.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace phirSOFT.ContextProperties +{ + /// + /// Implements a that redirects the calls to the target object if possible. + /// + /// THe type of the property. + /// The type of the value. + public class TargetObjectContextProvider : IContextProvider where TProperty : IContextProperty + { + /// + public TValue GetValue(object targetObject, TProperty targetProperty) + { + return ((IContextProvider) targetObject).GetValue(targetObject, targetProperty); + } + + /// + public bool OverridesValue(object targetObject, TProperty targetProperty) + { + return targetObject is IContextProvider provider && + provider.OverridesValue(targetObject, targetProperty); + } + } +}