実行時にDerived.MyPropertyのgetが実際にBase.GetProperty( "MyProperty")を呼び出し、Derived.MyPropertyのセットがBase.SetProperty( "MyProperty"、valueを呼び出すようにカスタム属性(MyAttribute)を作成することは可能ですか? )。
class Derived : Base
{
  [MyAttribute]
  string MyProperty { get; set;}
}
class Base
{
  XmlDoc _xmldoc;
  void SetProperty(string key, string value)
  {
    set key, value into _xmldoc;
  }
  string GetProperty(string key);
  {
    get key value from _xmldoc;
  }
}
以下のコメントから導き出された解決策は次のとおりです。すべてのコメント投稿者に感謝します。
public class WatchAttribute : HandlerAttribute
{
  public override ICallHandler CreateHandler(IUnityContainer container)
  {
    return new WatchHandler();
  }
}
public class WatchHandler : ICallHandler
{
  public int Order { get; set; }
  public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
  {
    Console.WriteLine(string.Format("Method '{0}' on object '{1}' was invoked.", 
    return getNext()(input, getNext);
  }
}
public class SomeAction : MarshalByRefObject
{
  [Watch]
  public string MyProperty1 { get; set; }
  public string MyProperty { get; set; }
}
class Program
{
  static void Main(string[] args)
  {
    SomeAction c = new SomeAction();
    IUnityContainer container = new UnityContainer()
      .AddNewExtension<Interception>();
    container.Configure<Interception>()
      .SetInterceptorFor<SomeAction>(new TransparentProxyInterceptor())
      .AddPolicy("WatchAttribute Policy")
      .AddMatchingRule(new PropertyMatchingRule("*", PropertyMatchingOption.GetOrSet));
    container.RegisterInstance<SomeAction>(c);
    c = container.Resolve<SomeAction>();
    c.MyProperty1 = "Hello";
    c.MyProperty = "Hello";
  }
}