בעייה תכנונית ב DI.
בכל הזמן שאני כותב תחת Dependency Injection משהו לא מסתדר לי ובכל פעם אני נתקל בזה מחדש.
נניח ש ILog או IMyDBContext מוזרק לי למחלקה בשם ClassA.
במחלקה כמובן אין לי שום דרך ליצור Instance חדש של ה Interfaces המוזרקים. רק להשתמש בהם.
אז מה הבעיה שלי?
בתוך ClassA יש לי מתודה (MyMethod) שצריכה לבצע New ל ClassB שה Ctor שלו מצפה של IMyContext. אז מה הבעיה אתם שואלים? פשוט נעשה (New ClassB(_mycontext ונשתמש. הענין הוא ש ClassB נניח עובד ב MultiThreading וכדי לעבוד נכון בכלל צריך להזריק לו Context חדש (נניח משתמשים ב EF) והמימוש ב ClassB הוא אסינכרוני.
אז איך אני מעביר לו Instance חדש של הסרוייס אם הוא מוזרק לי?
מקווה שהסברתי טוב.
תודה רבה.
בכל הזמן שאני כותב תחת Dependency Injection משהו לא מסתדר לי ובכל פעם אני נתקל בזה מחדש.
נניח ש ILog או IMyDBContext מוזרק לי למחלקה בשם ClassA.
במחלקה כמובן אין לי שום דרך ליצור Instance חדש של ה Interfaces המוזרקים. רק להשתמש בהם.
אז מה הבעיה שלי?
בתוך ClassA יש לי מתודה (MyMethod) שצריכה לבצע New ל ClassB שה Ctor שלו מצפה של IMyContext. אז מה הבעיה אתם שואלים? פשוט נעשה (New ClassB(_mycontext ונשתמש. הענין הוא ש ClassB נניח עובד ב MultiThreading וכדי לעבוד נכון בכלל צריך להזריק לו Context חדש (נניח משתמשים ב EF) והמימוש ב ClassB הוא אסינכרוני.
אז איך אני מעביר לו Instance חדש של הסרוייס אם הוא מוזרק לי?
מקווה שהסברתי טוב.
תודה רבה.