SORU
5 AĞUSTOS 2009, ÇARŞAMBA


Nasıl bir öznitelik oluşturucu nesneleri geçirmek için

Aşağıdaki gibi Öznitelikleri bir kurucu nesneleri geçirmek için çalışıyorum

[PropertyValidation(new NullOrEmptyValidatorScheme())]
public string Name { get; private set; }

Bu kurucu nitelik:

 public PropertyValidationAttribute(IValidatorScheme validator) {
      this._ValidatorScheme = validator;
    }

Kodu derlemek olmaz. Nasıl bir öznitelik içine bir nesne olarak yukarıda geçebilir miyim?

EDİT: Evet NullOrEmptyValidatorScheme uygular İValidatorScheme.

Hata: hata CS0182: bağımsız değişken sabit bir ifade olmalıdır öznitelik, tür ifade veya dizi oluşturma Bir niteliğin ifadesi parametre türü.

CEVAP
5 AĞUSTOS 2009, ÇARŞAMBA


Öznitelikleri değerleri basit türleri ile sınırlıdır; Örneğin, TEMEL sabitleri (dizeleri de dahil olmak üzere) ve typeof... new ya da diğer daha karmaşık kod kullanamıyorum. Kısacası; bunu yapamazsınız. Bu verebilirsinyazınama

[PropertyValidation(typeof(NullOrEmptyValidatorScheme)]

yani PropertyValidation decimal Activator.CreateInstance nesne oluşturmak için kod içinde ** 9, ve kullanım alır. Ideal sadece dize içten (AssemblyQualifiedName) saklamak gerektiğini unutmayın.

Gelen ECMA 334v4:

§24.1.3 parametre türleri bağlıyor

Konumsal türleri ve adlı öznitelik bir sınıf için parametreleri bu sınırlıöznitelik parametresi türleriolan:,

  • Aşağıdaki türlerinden biri: bool, byte, char, , , , , *, string*shortlongintfloat15.
  • Türü object.
  • Türü System.Type.
  • Bir numaralama türü, kamu erişilebilirlik vardır sağlanan ve hangi iç içe olduğu tip (varsa) ayrıca kamu erişilebilirlik.
  • Yukarıda tek boyutlu diziler türleri.

ve

§24.2 şartname bağlıyor

...

E bir ifade öznitelik bağımsız değişkeni ifade eğer aşağıdaki ifadelerden doğru:

  • E türü bir özellik. parametre türü (§24.1.3).
  • Derleme zamanı, E değeri olabilir çözülmüş birini için
    • Sabit bir değer.
    • Sattığınız ifade (§14.5.11) belirten bir genel olmayan bir , kapalı oluşturulmuş türü Ya da ilişkisiz genel (§25.5.2) türü (§25.5).
    • Tek boyutlu bir dizi bir öznitelik bağımsız değişkeni-ifadeler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • jcortes187

    jcortes187

    24 Mart 2006
  • MandMEvangelists

    MandMEvangel

    28 Ocak 2008