|
c# доступ к классу через публичный interface
|
|||
---|---|---|---|
#18+
Здравствуйте! Помогите пожалуйста разобраться в вопросе. Имеется сборка в ней имеется класс Core с классом доступа internal и наследующий два интерфейса. Интерфейс ICoreOther предназначен для использование другими сборками, в частности Others. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
В итоге в сборке Others, я не может достучаться до класса Core через ICoreOther. Я понимаю что дело в классе доступа. Если к примеру я поменяю класс доступа на public class Core, то все заработает. Но мне нужно сделать так чтобы доступен был только через интерфейс ICoreOther, а класс Core и интерфейс ICore был защищен. Как реализовать такую структуру доступа? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 09:56 |
|
c# доступ к классу через публичный interface
|
|||
---|---|---|---|
#18+
NechtoНо мне нужно сделать так чтобы доступенЛибо доступен (хоть через интерфейс, хоть как, уж определись), либо недоступен. Если нужно, чтобы другая сборка не могла инстанцировать класс - сделай конструктор internal. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 10:33 |
|
c# доступ к классу через публичный interface
|
|||
---|---|---|---|
#18+
Shocker.Pro, Разобрался! Пример приведенный выше правильный и схема рабочая. Я просто сам запарился, сборку other переименовал, а путь c новым название dll забыл изменить. Вопрос решен. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 10:43 |
|
c# доступ к классу через публичный interface
|
|||
---|---|---|---|
#18+
Nechto, Начнем с того, что приведенная реализация класса Core не скомпилируется - она не соответствует объявленным интерфейсам. Далее, не приведены детали реализации инжекта класса, и и его получения. После некоторой подрихтовки (для примера на скорую руку здесь используется сервис-локатор, но это только для примера) всё вполне работает: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
(разумеется, NoNane.Core и test находятся в разных сборках). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 10:58 |
|
|
start [/forum/search_topic.php?author=%D0%A1%D0%BE%D0%B2%D0%B5%D1%82&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 840ms |
total: | 1024ms |
0 / 0 |