Code: //Code private static void AddExtension(ReportViewer viewer, string name, Type extensionType) { const BindingFlags Flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance; FieldInfo previewService = viewer.LocalReport.GetType().GetField("m_previewService", Flags); MethodInfo ListRenderingExtensions = previewService.FieldType.GetMethod("ListRenderingExtensions", Flags); IList extensions = ListRenderingExtensions.Invoke( previewService.GetValue(viewer.LocalReport), null) as IList; Type localRenderingExtensionInfoType = Type.GetType( "Microsoft.Reporting.LocalRenderingExtensionInfo, " + "Microsoft.ReportViewer.Common," + "Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); ConstructorInfo ctor = localRenderingExtensionInfoType.GetConstructor( Flags, null, new Type[] { typeof(string), typeof(string), typeof(bool), typeof(Type), typeof(bool) }, null); object instance = ctor.Invoke(new object[] { name, name, true, extensionType, true }); extensions.Add(instance); } //End Of Code