先上配置文件:<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration, Version=2.0.414.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    
  </configSections>  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">      <alias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />
      <sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration"/>
      <alias alias="IoutPut" type="demo.IoutPut,demo"/>
      <alias alias="outPut" type="demo.outPut,demo"/>    <container>        <extension type="Interception"/>
  
        <register type="IoutPut" mapTo="outPut" >
          
          <interceptor type="TransparentProxyInterceptor"/>
          <interceptionBehavior type="demo.TestInterceptionBehavior,demo"/>
          
        </register>
        
      </container>
  </unity>
</configuration>数据操作及操作接口:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.InterceptionExtension;namespace demo
{
    public class outPut: MarshalByRefObject,IoutPut
    {
        [MyHandler]
        public void outMsg(string msg)
        {
            Console.WriteLine("outPut:" + msg);
            Console.ReadLine();
        }
    }    public interface IoutPut
    {
        [MyHandler]
        void outMsg(string msg);
    }  
}
拦截代码:MyHander.cs这个貌似是1.2版本写法,TestInterceptionBehavior说是2.0写法public class TestInterceptionBehavior:IInterceptionBehavior
    {
        //private TraceSource source;
        public IEnumerable<Type> GetRequiredInterfaces()
        {
            throw new NotImplementedException();
        }
        //public TestInterceptionBehavior(TraceSource source)
        //{
        //    this.source = source;
        //}
        public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext)
        {
            Console.WriteLine("方法名:{0}", input.MethodBase.Name);            Console.WriteLine("参数:");            for (var i = 0; i < input.Arguments.Count; i++)
            {
                Console.WriteLine("{0}:{1}", input.Arguments.ParameterName(i), input.Arguments[i]);
            }            Console.WriteLine("开始执行");            //这之前插入方法执行前的处理
            var retvalue = getNext()(input, getNext);//这里执行方法            //这之后插入方法执行后的处理
            Console.WriteLine("完成");            return retvalue;
        }        public bool WillExecute
        {
            get { throw new NotImplementedException(); }
        }
    }
MyHandler.csusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.InterceptionExtension;namespace demo
{
    public class MyHander : ICallHandler
    {
        public int Order { get; set; }//ICallHandler成员,表示执行顺序        public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
        {
            Console.WriteLine("方法名:{0}", input.MethodBase.Name);            Console.WriteLine("参数:");            for (var i = 0; i < input.Arguments.Count; i++)
            {
                Console.WriteLine("{0}:{1}", input.Arguments.ParameterName(i), input.Arguments[i]);
            }            Console.WriteLine("开始执行");            //这之前插入方法执行前的处理
            var retvalue = getNext()(input, getNext);//这里执行方法            //这之后插入方法执行后的处理
            Console.WriteLine("完成");            return retvalue;
        }
    }    public class MyHandlerAttribute : HandlerAttribute
    {
        public override ICallHandler CreateHandler(IUnityContainer container)
        {
            //throw new NotImplementedException();
            return new MyHander();
        }
    }
}前端调用:var container1 = new UnityContainer()
                               .AddNewExtension<Interception>();//声明unityContainer            var map = new ExeConfigurationFileMap { ExeConfigFilename = "../../Aop.Unity.xml" };            var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);            var section = (UnityConfigurationSection)config.GetSection("unity");//读取配置文件节点            if (section != null)
                section.Configure(container1 as IUnityContainer);            try
            {
                var op = container1.Resolve<IoutPut>();
                op.outMsg("配置方式输出");
            }
            catch (ResolutionFailedException rfex)
            {
                LogResolutionFailed(rfex);
            }在运行至var op = container1.Resolve<IoutPut>();总是异常的,异常信息:
Resolution of the dependency failed, type = "demo.IoutPut", name = "(none)".请问有遇到这个问题的朋友吗?请赐教