0

我在 App_Code 文件夹中声明了一个类。该类包含一个返回类型 Portfolio 的公共共享方法。

当我尝试调用此方法以在其中一个 ASCX 控件中初始化 Portfolio 类型的对象时,我收到“无法将 Jaguar.Portfolio 类型的值转换为 Jaguar.Portfolio”消息。

这是一个“网站”项目。我尝试使用 CType 和 DirectCast,但在尝试构建站点时仍然遇到相同的编译错误。

我在 ascx 控件的代码隐藏文件中使用下面列出的代码行

将 pObjSvc 调暗为 Jaguar.Portfolio = ClassName.GetPortfolio
4

4 回答 4

2

您有网页或用户控件,也称为 Portfolio 吗?您可能会遇到名称空间冲突,混淆了使用哪个 Portfolio 对象。如果是这种情况,您将需要更改类/模块的名称或类后面的控件或页面的代码,您应该已准备就绪。

于 2008-12-26T15:36:10.100 回答
1

似乎还有其他人有同样的问题:

ASP Net - “MyNamespace.MyClassName”类型的值不能转换为“MyNamespace.MyClassName”

我有一个 ASP.Net 应用程序,它使用来自其他几个解决方案的程序集。在我的机器上测试应用程序时,我使用 nmake 构建所有引用的程序集。最新的程序集放置在我的 ASP.NET 应用程序引用的公共目录中。

有时我会收到以下错误:在进行调试构建时,“MyNamespace.MyClassName”类型的值无法转换为“MyNamespace.MyClassName”(不同的类有很多)。我试过以下没有运气:

构建 ASP.Net 应用程序 重建 ASP.Net 应用程序 关闭 VS 并构建 ASP.Net 应用程序 关闭 VS.Net 作为重建 asp.Net 应用程序 IISreset 并构建/重建应用程序

似乎唯一可行的是,如果我运行 nmake 来构建所有引用的程序集,然后我就可以构建 ASP.Net 应用程序。

关于是什么原因的任何想法?有没有更简单的方法来修复它?

可悲的是,问题的作者没有找到明确的答案。但也许它包含一个提示,可能有助于找到解决方案。

更新:我不确定这在 ASP.NET 网站中是否可行,但也许您不小心添加了对项目本身的(临时)程序集的引用?这将解释错误。还尝试删除 bin 和 obj 文件夹的内容。

于 2008-12-26T16:38:22.860 回答
0

只是一个调试提示:

尝试重命名 Portfolio 类并重新编译。也许在某个地方有一个旧程序集或 .vb 您的文件中包含一个具有相同名称的类的其他代码?

于 2008-12-26T16:18:52.180 回答
0

当创建一个与业务对象类同名的 aspx 页面时,我曾见过类似的情况。您是否也有一些带有代码隐藏类 Portfolio 的 aspx 页面?

于 2008-12-27T20:20:42.113 回答