08-12-13, 07:04 PM
(آخر تعديل لهذه المشاركة : 08-12-13, 07:23 PM {2} بواسطة الشاكي لله.)
هناك فكرة ...
كما تعلم عندما تريد استخدام دوال المكتبة ، يجب عليك ان تقوم بتعريف Instance للكائن بهذا الشكل
تستطيع اعطاء رقم سري الى Sub new لتتم المقارنة ، فاذا كان الرقم السري خطأ
يتم رمي استثناء :-
الان طريقة استخدام المكتبة :-
سيتم الغاء عملية انشاء الكائن وسيدخل البرنامج الى اكواد Catch اذا كان السيريال خطا
تحياتي
الطريقة هذي يمكن كسرها بسهولة لو استخدم المبرمج ال System.Reflection.Assembly :-
رجاء من الادارة ان تقوم بفصل الردود
مي حالة دي
كما تعلم عندما تريد استخدام دوال المكتبة ، يجب عليك ان تقوم بتعريف Instance للكائن بهذا الشكل
PHP كود :
Dim cls As New ClassLibrary2.Class1()
تستطيع اعطاء رقم سري الى Sub new لتتم المقارنة ، فاذا كان الرقم السري خطأ
يتم رمي استثناء :-
PHP كود :
Public Class Class1
Public Sub New(ByVal Serial As String)
If (Serial <> "نص مشفر مثلا للمقارنة") Then
Throw New Exception("السيريال خطأ ، لايمكن استخدام المكتبة")
End If
End Sub
End Class
الان طريقة استخدام المكتبة :-
PHP كود :
Try
Dim cls As New ClassLibrary2.Class1("trtor")
Catch ex As Exception
MsgBox(ex.Message)
End Try
سيتم الغاء عملية انشاء الكائن وسيدخل البرنامج الى اكواد Catch اذا كان السيريال خطا
تحياتي
(08-12-13, 07:00 PM)Aly El-Haddad كتب :مع احترامي(08-12-13, 06:13 PM)ali.alfoly كتب : وكيف اصل الي الكلاسات
من خلال الـPublic Classes في مشروع الـ DLL
يعني أنت لما تستخدم الـPublic Class من المشروع حتى لو كان هذا الـPublic Class تستخدم بداخله دوال من Friend Classes فهذا لا يؤثر في شئ و تبقى الـFriend Classes في الحفظ و الصون
(08-12-13, 06:28 PM)3booody كتب : لو اردت مثلآ عمل خاصية لا احد يمكنه الوصول اليها الا انته اثناء التصريح اسبق بالكلمة Protected
تلاحظ الخاصية تظهر لك فقط داخل الكلاس
كود :
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Test As New MyTest
Test.Text=""'خطأ
End Sub
End Class
Public Class MyTest
Protected Property Text() As String
Get
Return "A"
End Get
Set(ByVal value As String)
End Set
End Property
Public Sub New()
Me.Text = "B"
End Sub
End Class
توضيح بسيط بخصوص Protected
عند وضع خاصية Protected في Class فإن هذه الخاصية لا يمكن إستخدامها إلى من هذا الـClass أو الـClasses الورثة يعني مثلاً في مثالك أنت كاتب Class MyTest فا لو أنا جيت كتبت
فيمكنني استخدام تلك الخاصية Text من خلال MyTest2كود :
Public Class MyTest2
Inherits MyTest
أما لو أردت أن تضع خاصية لا يمكن أن تُستخدم من خارج الـClass الذي هي فيه فتستخدم Private لا Protected
الطريقة هذي يمكن كسرها بسهولة لو استخدم المبرمج ال System.Reflection.Assembly :-
PHP كود :
Dim asm As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("dllpath")
Dim ty As Type = asm.GetType("ClassLibrary2.Class1")
Dim dynMethod As Reflection.MethodInfo =
ty.GetMethod("الاجراء الغير متاح الوصول له", BindingFlags.NonPublic Or BindingFlags.Instance)
dynMethod.Invoke(Me, Nothing)
رجاء من الادارة ان تقوم بفصل الردود
مي حالة دي

