in C# protection problem

rchokler

New member
in C# protection problem

קיבלתי אובייקט מוכן מאיזה חברה והתבקשתי ליצור איטרקציה עם הפונקציות בתוך האובייקט. כשאר הגדרתי שם למופע חדש מסוג האובייקט בעזרת NEW קיבלתי הודעה כזאת inaccessible due its protection level האם יש למישהו רעיון??
 

appy

New member
נשמע כאילו...

הפונקציה לא חשופה לך. בטוח שהיא מוגדרת public? יש לך קוד של הרכיב, או רק dll?
 

rchokler

New member
הבעיה מתחילה כבר בהגדרת האובייקט

הבעיה צצה כבר בהגדרת האובייקט, עוד לפני קריאה לפונקציות כך שלא נראה לי שיש בעיה בפונקציה נ.ב יש לי את ה "פרוטוטייפ" של הפונקציות, אך כמו שאמרתי הבעיה מתחילה מוקדם יותר.
 

rchokler

New member
הבעיה מתחילה מוקדם יותר

הבעיה צצה כבר בהגדרת האובייקט, עוד לפני קריאה לפונקציות כך שלא נראה לי שיש בעיה בפונקציה נ.ב יש לי את ה "פרוטוטייפ" של הפונקציות, אך כמו שאמרתי הבעיה מתחילה מוקדם יותר.
 

tc2000

New member
אם עף exception בשורה של ה-new

אז יכול להיות שה-default constructor הוא לא Public. אולי יש constructor-ים אחרים לאובייקט? אולי הפונקציה שאתה צריך היא static method ואז לא צריך לעשות לו new?
 

itaym02

New member
נראה לי שTC צודק

במקרים כאלו, בדרך כלל, יש מטודה סטאטית שהיא מחזירה את אינסטנס של האובייקט. (לדוגמה ולדוגמא: ראה אובייקט גראפיקס של form)
 

rchokler

New member
לצערי לא הבנתי מכם מה הפתרון

אם הבעיה היא default constractor שלא public אז מה עושים??? אי אפשר לקרוא למופע של האובייקט?? נסיתי בכל הצורות לקרוא למופע (public,private,protected) וזה לא הועיל.
 

rchokler

New member
סוף סוף אני מצליח להגדיר את הבעיה

סליחה מראש שלא ידעתי לנסח את הבעיה העינינם מובנים לי יותר מדקה לדקה אז ככה: יש לי אובייקט OCX שנכתב ותוכנן לעבוד ב VB (רגיל לא net.) צירפתי אותו ל tool box וגררתי אותו לform1 האם יש אפשרות להנס לאובייקט הזה ב C# ז"א לקרוא לפונקציות וכו' פה לא הצלחתי לעשות NEW לשם של האובייקט. האם יש איזה דרך לחדור ל WRAP ש C# יוצר בעצם אני לא כל כך מבין מה בדיוק ה WRAP הזה?
 

besser

New member
אולי בעיה בinterop?

אם הצלחת לגרור את האוביקט לתוך הטופס- זה אומר שכבר עשית עליו new אחרת היתה לך שגיאה בdesign time כלומר כדי לראות איך לעשות את הnew תסתכל בinitalize compoments בעבר גם אני גררתי פקדים של הגירסה הישנה ומה שהוא עשה , הוא הוסיף לי dll שתומכים בזה (כדי לעבוד עם dll בגירסה הקודמת הוא יוצר קובץ בשם interop.dllname.dll) בתוך הreferences
 
למעלה