سلام
کسی نحوه نوشتن Attribute برای Propertyها رو بلده؟
در پناه حق موفق باشید و پرتوان
Printable View
سلام
کسی نحوه نوشتن Attribute برای Propertyها رو بلده؟
در پناه حق موفق باشید و پرتوان
منظورتون رو واضح تر بگید. یه جورایی attribute که همون property است. منظورتون enumeration که نیست؟
سلام
نه عزیز جان. منظورم اون نیست.نقل قول:
نوشته شده توسط titbasoft
ببین این نوع Attributeها در ابتدای تعریف Propertyها نوشته میشه و همیشه داخل<> است. نوشتن این Attributeها از قوانین خاص خودش تبعیت میکنه. میخواستم بدونم کسی از دوستان این قوانین رو میدونه. در این زمینه تجربه ای داره؟
در پناه حق موفق باشید و پرتوان
گاهی اوقات پیش میاد که یکسری اطلاعات توصیفی برای هر یک از انواع متادیتای (class ها ، property ها ، method ها و ...) شما لازم باشه. مثلا فرض کنید شما می خواهید یک flag برای بعضی از property های خودتون مشخص کنید که اونها رو از بقیه متمایز می کنه . یا مثلا می خواهید اسم نویسنده اون رو بهش اضافه کنید. به طور کلی attribute ها برای مشخص کردن اطلاعاتی بیش از scope یکی از عناصر متادیتا بوجود آمده اند. پس attribute ها صرفا فقط برای property ها استفاده نمی شن و شما می تونید از اونها برای هر نوع از انواع متادیتا استفاده کنید. ولی البته کسی که یک attribute رو نوشته می تونه مشخص کنه که اون attribute برای چه عنصر یا عناصری استفاده بشه.
با این توضیحات می شه گفت تنها قانونی که وجود داره دونستن اینه که چه attribute ای کجا استفاده بشه. که اون هم فقط از طریق MSDN قابل فهمیدن.
در آخر یک مثال فکر کنم همه چیز رو روشن کنه:
فرض کنید یک attribute به این صورت تعریف شده باشه:
<AttributeUsage(AttributeTargets.All)> Public Class DeveloperAttributeتوجه کنید که target در این attribute همه (all) مشخص شده.
Inherits Attribute
Protected mvarName As String
Public Sub New(ByVal name As String)
Me.mvarName = name
End Sub
Public Property Name() As String
Get
Return mvarName
End Get
Set(ByVal Value As String)
mvarName = Value
End Set
End Property
End Class
حالا به این صورت ازش استفاده میشه:
Class DeveloperTestو برای دسترسی به attribute ها هم به این صورت عمل میشه:
<Developer("hashem")> Public Sub myMethod()
End Sub
<Developer("ALI")> Public ReadOnly Property myProp() As Boolean
Get
Return True
End Get
End Property
End Class
Dim dt As New DeveloperTestیه چیزی رو که یادم رفت بگم اینه که ما اینجا یک custom attribute تعریف کردیم.
Dim dtType As Type = dt.GetType()
Dim mi As System.Reflection.MemberInfo
Dim attr As Attribute
For Each mi In dtType.GetMembers()
For Each attr In Attribute.GetCustomAttributes(mi)
If TypeOf attr Is DeveloperAttribute Then
Dim attrCustom As DeveloperAttribute = CType(attr, DeveloperAttribute)
MsgBox(mi.GetType.ToString & " " & mi.Name() & " has developed by " & attrCustom.Name & " .")
End If
Next
Next
سلام دوستان
من هرچی راجع به attribute ها جستجو میکنم هر جا یه جوری توضیح میدن و من اصلا گیج شدم
فرق بین اون چیز هایی که توی [ ] نوشته میشن با اون چیزهایی که توی < > نوشته میشن چیه ؟
آیا هر دو اینها attribute هستن ؟
و اینکه آیا تعریف attribute ها برای property فرق داره با attribute های method
آیا لیستی هست که تمام attribute ها رو در دسترس قرار بده
خیلی خیلی ممنونم