【发布时间】:2012-01-04 14:28:53
【问题描述】:
我在构建项目时遇到错误:
警告为错误:“OthersAddresses.AddresseTypeParameter”的类型不符合 CLS C:...\Units\OthersAddresses.ascx.cs
public Address.AddressTypeEnum AddressTypeParameter
{
get
{
return _addressTypeParameter;
}
set
{
_addressTypeParameter = value;
}
}
还有这个:
警告为错误:“Global.UserInSession”类型不符合 CLS C:...\Global.asax.cs
public static User UserInSession
{
get
{
return (HttpContext.Current.Session["CurrentUser"] == null)
? null
: HttpContext.Current.Session["CurrentUser"] as User;
}
set
{
HttpContext.Current.Session["CurrentUser"] = value;
}
}
我在 UserInSession 和 AddresseTypeParameter 之前添加了属性 [CLSCompliant(false)] 并且它有效,但我想了解它为什么不符合 CLS。
更多关于类和枚举的信息:
类用户 (User.cs)
public class User
{
private string _uniqueIdentifier;
private string _password = string.Empty;
private string _email = string.Empty;
private string _passwordQuestion = string.Empty;
private string _passwordAnswer = string.Empty;
private string _id_directions_db = string.Empty;
private string _id_gesab = string.Empty;
private string _zipCode = string.Empty;
private string _fonction_id = string.Empty;
private string _fonction = string.Empty;
private string _structure_id = string.Empty;
private string _structure = string.Empty;
private string _firstName = string.Empty;
private string _lastName = string.Empty;
private string _company = string.Empty;
private string _avatarPath = string.Empty;
private Role _role = new Role();
private List<Address> _addressList = new List<Address>();
private string _otherInformation = string.Empty;
private MembershipUser _membershipUserAssociated = null;
...
public enum GenderEnum
{
Empty = 0,
Monsieur,
Madame
}
和
枚举 AddressTypeEnum (Address.cs)
public class Address
{
private AddressTypeEnum _addressType;
private string _firstName = string.Empty;
private string _lastName =string.Empty;
private string _structure = string.Empty;
private string _structureComplementary = string.Empty;
private string _addressStreet = string.Empty;
private string _addressComplementary = string.Empty;
private string _bp = string.Empty;
private string _zipCode = string.Empty;
private string _country = string.Empty;
private string _countryId = string.Empty;
private string _city = string.Empty;
private string _phone = string.Empty;
private string _fax = string.Empty;
private string _email = string.Empty;
public enum AddressTypeEnum
{
Empty = 0,
Personal = 1,
Billing = 2,
Delivery = 3
}
【问题讨论】:
-
可能您必须显示
User和Address类的定义以进一步帮助您。 -
顺便说一句,地址拼错了。
-
您是否使属性类型符合 CLS?
-
您是否真的想知道为什么您的代码不符合 CLS,或者您只是想知道如何摆脱这些警告错误?换句话说,您确定您的代码必须、必须、绝对必须符合 CLS 标准吗?
-
阅读编写符合 CLS 的代码的指南;其中大部分解释了您遇到的错误:msdn.microsoft.com/en-us/library/bhc3fa7f.aspx
标签: c# .net cls-compliant