我在项目1中设置了一个类来扩展WebViewPage,以便可以添加自己的扩展方法.我关注了这个页面:right here.
我还有一个包含一个类和一个对象的第二个项目.该项目的.dll在项目1中被引用,并在gacutil中注册.
扩展方法使用项目2中的对象.每当我在页面上使用新实现的扩展方法时,都会收到CCS0012错误.
CS0012: The type ‘namespace.AppAuthentication.type’ is defined
in an assembly that is not referenced. You must add a reference to
assembly ‘namespace.AppAuthentication’
我已经能够调试通过,并看到该对象已正确设置.即使当我将其解析为JSON并将其显示在jquery的控制台中时,一切也都在那里!仅当我访问视图中的对象时.
在项目1中引用了项目2.在我的gacutil中注册了项目2的.dll.唯一可行的方法是在参考上将“ copy local”设置为true.除此之外,这对我来说不是可接受的选择.我一直在尝试在阳光下进行的所有操作,以及此帖子中列出的所有操作:right here.
如果有人能对此事提供一些启示,我将万分感谢.在我看来,Razor似乎无法访问在GAC中注册的程序集.
*编辑:固定标题
解决方法:
一段时间后,我的同事找到了我们的解决方案.我试图添加名称空间,而我们需要添加的程序集.这是在根web.config中完成的,而不是在视图web.config中完成的.我们只需要添加:
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="namespace.AppAuthentication />
</assemblies>
</compilation>
现在,我可以使用自定义WebViewPage扩展了!