Tips for Debugging Your Code in Visual Studio 2010: Listing 1.

You can use the Managed Extensibility Framework (MEF) to create a provider that returns an existing TraceSource, creates or accesses one as a MEF part, or creates one through traditional means. I don't like calling this a factory, because in most cases calls don't create a new item. You can use a similar pattern in many other scenarios.

   [TraceSourceProvider()]
   public class TraceSourceProvider : ITraceSourceProvider 
   {
      [ImportMany()]
      private IEnumerable<ITraceSource> sources = null;
      private IEnumerable<TraceSource> traceSources = null;

      public System.Diagnostics.TraceSource 
        GetTraceSource(string traceSourceName)
      {
         if (traceSources  == null)
         {
            traceSources = from x in sources 
                           select x as TraceSource;
         }
         var matches = from x in traceSources 
                       where x.Name == traceSourceName 
                       select x;
         if (matches.Count() > 0)
         {
            var ret = matches.FirstOrDefault() as TraceSource;
            return ret;
         }
         var traceSource = new TraceSource(traceSourceName);
         traceSources = 
           traceSources.Union (new TraceSource[] {traceSource});
         return traceSource;
      }
comments powered by Disqus

Featured

  • VS Code 1.130 Expands Agent Host and Review Tools

    Microsoft's latest weekly VS Code release advances shared agent sessions, multi-file change review, chat visibility and terminal navigation

  • Microsoft Agent Framework Makeover: Claws, Loops and Harnesses

    Microsoft's newly released Agent Framework Harness packages the loops, planning, memory, context management and safety controls that developers previously had to assemble around AI models themselves.

  • Visual Studio 2026 Gives Copilot Built-In Skills -- and Makes Them Prove Their Worth

    Microsoft is moving Agent Skills beyond bring-your-own instructions by shipping expert-authored workflows with the IDE, while keeping them off by default until testing shows their benefits justify the additional token use.

  • Copilot AI Billing Shock Met with Meters, Caps and Token-Saving Tools

    GitHub is layering spending limits, expanded credit allowances and increasingly granular usage reporting onto Copilot, while Microsoft is reworking Visual Studio and VS Code to expose -- and reduce -- the cost of agentic development.

Subscribe on YouTube