Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Found the answer on my own:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt; &lt;configuration&gt; &lt;configSections&gt; &lt;section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /&gt; &lt;/configSections&gt; &lt;unity&gt; &lt;typeAliases&gt; &lt;typeAlias alias="ILogger" type="ConsoleApplication1.ILogger, ConsoleApplication1" /&gt; &lt;typeAlias alias="Logger" type="ConsoleApplication1.Logger, ConsoleApplication1" /&gt; &lt;typeAlias alias="TestAttribute" type="ConsoleApplication1.TestAttribute, ConsoleApplication1" /&gt; &lt;typeAlias alias="TestHandler" type="ConsoleApplication1.TestHandler, ConsoleApplication1" /&gt; &lt;typeAlias alias="interface" type="Microsoft.Practices.Unity.InterceptionExtension.InterfaceInterceptor, Microsoft.Practices.Unity.Interception, Version=1.2.0.0" /&gt; &lt;/typeAliases&gt; &lt;containers&gt; &lt;container name="ConfigureInterceptorForType"&gt; &lt;extensions&gt; &lt;add type="Microsoft.Practices.Unity.InterceptionExtension.Interception, Microsoft.Practices.Unity.Interception" /&gt; &lt;/extensions&gt; &lt;extensionConfig&gt; &lt;add name="interception" type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationElement, Microsoft.Practices.Unity.Interception.Configuration"&gt; &lt;interceptors&gt; &lt;interceptor type="interface"&gt; &lt;key type="ILogger"/&gt; &lt;/interceptor&gt; &lt;/interceptors&gt; &lt;/add&gt; &lt;/extensionConfig&gt; &lt;types&gt; &lt;type type="ILogger" mapTo="Logger" /&gt; &lt;/types&gt; &lt;/container&gt; &lt;/containers&gt; &lt;/unity&gt; &lt;/configuration&gt; </code></pre> <p>And again, the C# code:</p> <pre><code>using System; using System.Configuration; using Microsoft.Practices.Unity; using Microsoft.Practices.Unity.Configuration; using Microsoft.Practices.Unity.InterceptionExtension; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //IUnityContainer container = new UnityContainer(); //container.AddNewExtension&lt;Interception&gt;(); //container.RegisterType&lt;ILogger, Logger&gt;(); //container.Configure&lt;Interception&gt;().SetInterceptorFor&lt;ILogger&gt;(new InterfaceInterceptor()); IUnityContainer container = new UnityContainer(); UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); section.Containers["ConfigureInterceptorForType"].Configure(container); var logger = container.Resolve&lt;ILogger&gt;(); logger.Write("World."); Console.ReadKey(); } } public interface ILogger { [Test] void Write(string message); } public class Logger : ILogger { public void Write(string message) { Console.Write(message); } } public class TestAttribute : HandlerAttribute { public override ICallHandler CreateHandler(IUnityContainer container) { return new TestHandler(); } } public class TestHandler : ICallHandler { public int Order { get; set; } public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext) { Console.Write("Hello, "); return getNext()(input, getNext); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload