泛型和ASP.Net Membership Provider

4
我正在尝试将通用列表用作用户配置文件的属性。我承认这可能只是让我的生活变得更加困难,但我不想因为数据存储的问题而改变编程模型。
以下是我在web.config中的设置:
        </providers>
        <properties>
            .....
            <add name="AListProperty" type="System.Collections.Generic.List`1[[System.Int32]]"/>
            <add name="AnotherListProperty" type="System.Collections.Generic.List`1[[MyNamespace.Web.UI.MyReallySimpleClass]]">
                        </properties>
    </profile>

第一个属性"AListProperty"运行良好。 第二个属性根据我在web.config中的声明方式抛出各种异常。 MyReallySimpleClass是公共的、可序列化的,并且目前由2个公共字段组成。

所以,我的问题是: 1. 有人知道在web.config中声明这些类型的格式在哪里记录。 2. 我做错了什么?看起来很好,我看不出两个声明之间有任何语义上的区别。

谢谢


我想知道这是否与System.Int32是一个原始类型而你的MyReallySimpleClass不是有关。 - BenAlabaster
2个回答

3
如果您能提供一些有关异常类型和消息的详细信息,那将会很有帮助。否则,我猜您可能需要在MyNamespace.Web.UI.MyReallySimpleClass中加上类型所在程序集的限定名,例如:MyNamespace.Web.UI.MyReallySimpleClass, MyAssembly。除非类型位于mscorlibApp_Code或配置文件的system.web/compilation/assemblies部分列出的程序集中,否则不需要进行程序集限定。
  1. 是否有人知道在web.config中声明这些类型的格式在哪里有文档记录?
请参阅MSDN中的指定完全限定类型名称

我没有为你的答案投票,因为你关于汇编资格不需要的陈述令人困惑。你说“除非...不需要”?但是system.int32可以在没有汇编资格的情况下工作。我的类位于项目的输出汇编中,但仍需要汇编资格。 - Frustrating Developments
我觉得我已经澄清了这个问题。如果程序集资格证书丢失,那么就会始终检查mscorlib。由于Int32位于mscorlib中,因此不需要明确指定程序集。 - Atif Aziz

3
尝试指定YourReallySimpleClass的程序集:
...type="System.Collections.Generic.List`1[[MyNamespace.Web.UI.MyReallySimpleClass, MyAssemblyName]]"

在我添加了汇编限定符并纠正了拼写错误后,它开始工作了。谢谢。 - Frustrating Developments

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接