C# 使用Microsoft报表查看器时,Postsharp会导致错误

C# 使用Microsoft报表查看器时,Postsharp会导致错误,c#,reportviewer,postsharp,C#,Reportviewer,Postsharp,在我的项目中,我使用两个不同版本的MicrosoftReportViewer(版本9和版本10),并通过外部别名声明它们 似乎PostSharp在编译时导致了一个问题,导致运行时出错 以下是我尝试显示报告时出现的错误: 未找到方法:“Microsoft.Reporting.WebForms.ReportDataSourceCollection Microsoft.Reporting.WebForms.LocalReport.get_DataSources()” 如果我在运行时停用PostShar

在我的项目中,我使用两个不同版本的MicrosoftReportViewer(版本9和版本10),并通过外部别名声明它们

似乎PostSharp在编译时导致了一个问题,导致运行时出错

以下是我尝试显示报告时出现的错误:

未找到方法:“Microsoft.Reporting.WebForms.ReportDataSourceCollection Microsoft.Reporting.WebForms.LocalReport.get_DataSources()”

如果我在运行时停用PostSharp,错误仍然存在,但是如果我完全停用PostSharp,那么即使在编译时,报告也可以正常工作

以下是我如何应用我的方面:

[assembly: ClickLogger("Click Events", AttributeTargetMembers = "*Click", AttributePriority = 1)]
[assembly: ParamValueChangedLogger("Value changed events", AttributeTargetMembers = "*ValueChanged", AttributePriority = 1)]
[assembly: ParamValueChangedLogger("Value changed events", AttributeTargetMembers = "*CellValueChanged", AttributeExclude = true, AttributePriority = 2)]
[assembly: CellValueChangedLogger("Cell value changed events", AttributeTargetMembers = "*CellValueChanged", AttributePriority = 1)]
[assembly: DataAdapterLogger("Data Adapter call events", AttributeTargetTypes = "*.Data*", AttributeTargetMembers = "get_Adapter", AttributePriority = 1)]
[assembly: DataAdapterLogger("Data Adapter call events", AttributeTargetMembers = "SaveToDB", AttributeExclude = true, AttributePriority = 2)]
有没有人犯过这样的错误,或者知道该怎么做

如果您需要更多信息,请随时询问


提前感谢您的时间和帮助。

这可能是PostSharp的一个bug。最好的办法是将其报告给一个简单的项目,并附上一个复制该问题的项目。

需要更多详细信息。你在创造什么样的方面?你是如何运用它的?它在干什么?需要代码。我创建OnMethodBoundarySpects。它们都是为了记录日志。我在我的原始帖子中添加了如何应用我的方面。问题是,即使我取消了所有注释,错误仍然会出现。使此错误消失的唯一方法是真正停用postSharp,以便在编译时不插入任何代码。显示的错误看起来像是在属性getter上发生的。你有没有试过排除getter/setter?请参阅我的文章,或者您也可以使用CompileTimeValidate方法执行此操作。您是否使用ILSpy或dotPeek查看了已编译的程序集,以了解该getter中的实际情况?报表查看器可能试图通过使用字符串的反射来查找该方法,并且可能该特性更改了名称。使用ILSpy来验证发生了什么。早上好DustinDavis,我马上检查。非常感谢你的帮助,我会让你知道它是否有效!是的,我无论如何都不能解决这个问题,所以我将尝试在一个简单的项目中重现这个错误。谢谢