11

プロジェクトのビルド時にエラーが発生しました:

エラーとしての警告: '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;
    }
}

[CLSCompliant(false)]前にUserInSession属性を追加AddresseTypeParameterして動作しましたが、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
    }
4

2 に答える 2

9

以下を使用する必要がありますCLSCompliantAttribute

CLSCompliantAttribute がプログラム要素に適用されていない場合、既定では次のようになります。

  • アセンブリは CLS に準拠していません。
  • 型が CLS に準拠しているのは、それを囲んでいる型またはアセンブリが CLS に準拠している場合のみです。
  • 型のメンバーが CLS に準拠しているのは、型が CLS に準拠している場合のみです。

これとは別に、アセンブリが実際にCLS に準拠していることを確認する必要があります。

于 2012-01-04T14:36:47.880 に答える
1

これは、「'OthersAdresses.AdresseTypeParameter' のタイプが CLS に準拠していない」ことを知らせており、プロパティが必ずしも準拠しているわけではありません。プロパティではなく、 typesを見てください。おそらく、警告の原因がわかるでしょう。

于 2012-01-04T15:13:16.083 に答える