עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

בעיה עם WebService ב-C#

Featured Replies

פורסם

שלום תוכניתנים יקרים!

יש לי בעיה בשימוש ב-WebService ב-C# (הסביבה היא Visual Studio 2005).

ה-WebService רץ על שרת IIS נפרד.

בפרויקט של ה-WebService על השרת, בקובץ Reference.cs שמכיל את כל ה-Referenceים ל-Classים שה-WebService מייחצן, כל ה-Data Members בכל ה-Classים מוגדרים כ-public.

לעומת זאת, בפרויקט על מחשב אחר שבו יש Web Reference ל-WebService הזה, בקובץ Reference.cs אותם Members הפכו משום מה ל-private ונוספו properties שהם public לאותם ה-members.

איך אפשר לבטל את השינוי, כך ש-Web Reference לא ייחצן לי את ה-Data Members באמצעות properties אלא ישאיר אותם כ-public ויתן לי גישה ישירה אליהם? האם ההגדרה הזאת היא בפרויקט שמכיל את ה-WebReference או בפרויקט של ה-WebService עצמו על השרת IIS?

תודה רבה, אסף.

פורסם

ה- studio מייצר לך את קובץ הממשק ל- WebService

Reference.cs כפי שאמרת

בהתאם ל- קלאסים וה- WebMethods שיש בכל קלאס ב- WebService

אם ה- WebService עושה שימוש פנימי באיזשהם DataMembers אז הוא לא יחשוף אותם ל- client

רק אם WebMethod ציבורי מחזיר DataMember או מקבל DataMember אז הוא ייחשף לך בצד ה- client

נדיר מאוד שצריך להתערב בקובץ ה- references.cs ולשנות אותו

פורסם
  • מחבר

אוקי תודה רבה,

איך בכל זאת אני יכול לחשוף את ה-Data Members בלי properties?

הגישה חייבת להיות ע"י WebMethod (במקרה שלנו properties) ?

החשיפה (יחצון) ע"י properties יוצרת עוד בעיה - ה-visual מוסיף לשמות השדות (DataMembers) את התוספת "Field" מה שיאלץ אותי לשנות בכל המערכת את ההתייחסות לאותם שדות..

פורסם

חפש בקובץ ה- references.cs

data members שלפני הצהרתם יש קידומת עם מילת המפתח internal ואז להסיר אותה

אבל אני מדגיש שוב : אם הגעת למצב שאתה צריך לעשות זאת , סימן שמשהו מאוד לא בסדר באיך שתכננת את הממשק שלך בין ה- client ל- webservices

client כאן אני מתכוון לא ל- client של צד הדפדפן אלא אפליקציית ה- asp.net שלך שקוראת ל- webservices

פורסם
  • מחבר

אין כאלו DataMembers, רק WebMethods..

אני צריך את אותם DataMembers כ-public כי אני משתמש ב-Reflection עבור אותם classים והפונקציות getField/s פועלות רק על שדות public.

אני לא יכול פשוט לשנות את ההגדרה private ל-public?

פורסם

יכול להיות שב- studio 2003 זה internal וב- studio 2005 הם שינו את זה ל- private

נסה

אבל תהיה מודע לזה שבכל פעם שתעשה שינויים ב- webservices תצטרך לשנות שוב את קובץ ה- references.cs כי ה- studio מחולל אותו כל פעם מחדש

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.