代码之家  ›  专栏  ›  技术社区  ›  netadictos

在SharePoint网站中为适配器创建类型时出现异常?

  •  0
  • netadictos  · 技术社区  · 16 年前

    我在SharePoint2007中有一个网站。我使用控制适配器,特别是菜单和登录控件的适配器。这两个适配器驻留在一个已签名的程序集中,并将其部署到网站的bin文件夹中。 浏览器

    <browser refID="Default">
            <controlAdapters>
                <adapter controlType="System.Web.UI.WebControls.Menu"
                 adapterType="NameofEnterprise.SecondName.Adapters.MenuAdapter" />
                <adapter controlType="System.Web.UI.WebControls.Login"
             adapterType="NameofEnterprise.SecondName.Adapters.LoginAdapter" />
            </controlAdapters>
        </browser>
    

    有时我会得到以下例外情况,只是有时,让我们假设一天一次或两次:

    Unable to create type 'NameofEnterprise.SecondName.Adapters.MenuAdapter'.
    

    需要注意的是:这发生在我开发的机器上,我不知道是否有临时文件可以让框架疯狂。其次,我不知道框架是否在另一个程序集中查找适配器的类,因为我有一些程序集与此程序集具有相同的命名空间,也就是说:nameofenterprise.secondname.businesslayer、nameofenterprise.secondname.datalayer….

    请告诉我有什么问题?我可以更具体地告诉框架程序集的名称吗(在浏览器中,您只写类和命名空间的名称)?

    解决方案

    最后,我采纳了你给我的两条建议。我认为第一件事就足够了,也就是说:

    <system.web>
        <compilation>
          <assemblies>
            <add assembly="*<Your assembly name here>*"/>
        </assemblies>
        </compilation>
    </system.web>
    

    但我在浏览器中包含了两个程序集和公共令牌:

    <browser refID="Default">
        <controlAdapters>
                <adapter controlType="System.Web.UI.WebControls.Menu"
                 adapterType="NameofEnterprise.SecondName.Adapters.MenuAdapter", YourAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=YourPublicKeyToken"/>
        </controlAdapters>
    
    2 回复  |  直到 16 年前
        1
  •  2
  •   Matt Lynch    16 年前

    您应该修改web.config,将程序集添加到程序集列表中:

    <system.web>
        <compilation>
          <assemblies>
            <add assembly="*<Your assembly name here>*"/>
        </assemblies>
        </compilation>
    </system.web>
    

    添加包含控件的程序集,错误将消失。为了将来参考,临时Internet文件 没有什么 处理ASP.NET错误。不过,如果能让你感觉好些的话,你可以把它们清除掉。

        2
  •  1
  •   apparat    16 年前

    将引用添加到程序集时,使用完整限定名也很有用:

    <browser refID="Default">
        <controlAdapters>
                <adapter controlType="System.Web.UI.WebControls.Menu"
                 adapterType="NameofEnterprise.SecondName.Adapters.MenuAdapter", YourAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=YourPublicKeyToken"/>
        </controlAdapters>
    

    推荐文章