【发布时间】:2012-05-31 20:33:54
【问题描述】:
我目前正在学习使用 Visual Studio 11 beta 的教程。尝试在我的一个类中设置字段值的最大长度时:
[MaxLength(50)]
public string LastName { get; set; }
因为MaxLength() 函数存在于两个地方,所以它会出错并且不会让我编译:
错误 4 类型“System.ComponentModel.DataAnnotations.MaxLengthAttribute”存在于“c:\Users\me\Documents\Visual Studio 11\ContosoUniversity\packages\EntityFramework.4.1.10331.0\ lib\net40\EntityFramework.dll' 和 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll'
我已尝试删除这两个文件,但这只会导致更多问题,因为我项目中的其他代码依赖于它们。
有没有办法告诉它使用其中一个或另一个?
所有这些方法似乎都不适合我。请参阅答案下的 cmets。还有其他想法吗?
谢谢
【问题讨论】:
-
全名空间呢,它们也一样吗?
-
感谢您的帮助。看起来你的一些答案(如果不是全部的话)都会奏效。明天我可以在我的另一台电脑上测试它,然后选择一个答案。谢谢。
-
不幸的是,这种方法直到不起作用,系统仍然检测到 System.ComponentModel.DataAnnotations.MaxLengthAttribute 的两次出现我试图通过命令提示符创建一个外部别名 - 通过转到 dll 并键入/r:GridV1=grid.dll 但它无法识别命令或其他东西。
-
@L.B 当错误消息指出不同程序集中存在具有相同完全命名空间限定名称的两种类型时,提供完整命名空间将无济于事。在这两种情况下都是一样的。他的问题是他引用了太多的程序集,并且他从中得到了重复。
标签: c# asp.net-mvc visual-studio dll controller