public static void Enable(TraceConfiguration traceConfig)
 {
     m_enableMethod.Invoke(
         null,
         new object[]
     {
         traceConfig.ConfigurationObject
     });
 }
        static int Main(string[] args)
        {
            TimeSpan profSampleDelay = TimeSpan.FromMilliseconds(1);
            string   outputFile      = "default.netperf";

            Assembly SPC           = typeof(System.Diagnostics.Tracing.EventSource).Assembly;
            Type     eventPipeType = SPC.GetType("System.Diagnostics.Tracing.EventPipe");

            m_enableMethod  = eventPipeType.GetMethod("Enable", BindingFlags.NonPublic | BindingFlags.Static);
            m_disableMethod = eventPipeType.GetMethod("Disable", BindingFlags.NonPublic | BindingFlags.Static);

            // Setup the configuration values.
            uint circularBufferMB = 1024; // 1 GB
            uint level            = 5;    // Verbose

            // Create a new instance of EventPipeConfiguration.
            TraceConfiguration config = new TraceConfiguration(outputFile, circularBufferMB);
            // Setup the provider values.
            // Public provider.
            string providerName = "Microsoft-Windows-DotNETRuntime";
            UInt64 keywords     = 0x4c14fccbd;

            // Enable the provider.
            config.EnableProvider(providerName, keywords, level);

            // Private provider.
            providerName = "Microsoft-Windows-DotNETRuntimePrivate";
            keywords     = 0x4002000b;

            // Enable the provider.
            config.EnableProvider(providerName, keywords, level);

            // Sample profiler.
            providerName = "Microsoft-DotNETCore-SampleProfiler";
            keywords     = 0x0;

            // Enable the provider.
            config.EnableProvider(providerName, keywords, level);

            // Set the sampling rate.
            config.SetSamplingRate(profSampleDelay);

            // Enable tracing.
            Enable(config);
            Disable();
            Enable(config);

            return(100);
        }