2012-08-03 14 views
5

System.Web.PreApplicationStartMethodAttribute परिभाषित:प्रीएप्लिकेशंस स्टार्टएमडेंट एट्रिब्यूट का एकाधिक उपयोग क्यों नहीं किया जाता है?

[AttributeUsage(AttributeTargets.Assembly, AllowMultiple=true)] 
public sealed class PreApplicationStartMethodAttribute : Attribute 
{} 

अर्थात यह एकाधिक उपयोग की अनुमति देता है (AllowMultiple = true)। लेकिन अगर मैं अपने विधानसभा के लिए इस विशेषता का जोड़ा कई प्रयोगों का प्रयास करें:

[assembly: PreApplicationStartMethod(typeof(MyType1), "Start")] 
[assembly: PreApplicationStartMethod(typeof(MyType2), "Start")] 

मैं संकलक त्रुटि मिलती है:
त्रुटि 2 डुप्लीकेट 'PreApplicationStartMethod' विशेषता

क्यों है?

उत्तर

7

मुझे संदेह है कि आप .NET 4.5 version पर देख रहे थे, जिसे AllowMultiple = True के रूप में प्रलेखित किया गया है।

documentation for the .NET 4.0 versionAllowMultiple = false के रूप में यह पता चलता है:

[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = false)] 
public sealed class PreApplicationStartMethodAttribute : Attribute 

तो अगर आप .NET 4.5 लक्षित करते हैं, यह ठीक होना चाहिए।

+0

आप सही हैं। मैं सी: \ विंडोज \ माइक्रोसॉफ्ट.net \ फ्रेमवर्क \ v4.0.30319 \ System.Web.dll पर प्रतिबिंबक में देख रहा था और भूल गया कि 4.5 "इन-प्लेस अपग्रेड" है। (मेरे पास 4.5 आरसी स्थापित है) – Shrike