回答編集履歴

2

書式の改善

2021/04/08 10:00

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -11,6 +11,8 @@
11
11
 
12
12
 
13
13
  > サービス層のプロジェクトにappsettings.jsonを置くのはどうかなと思い、悩み中です。
14
+
15
+
14
16
 
15
17
  外からオブジェクトをもらっていきましょう。
16
18
 

1

追記

2021/04/08 09:59

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -3,3 +3,121 @@
3
3
 
4
4
 
5
5
  [[C#][WPF][EF]Entity Framework で DB にアクセスする際コンテキストのオブジェクトが自動的に注入されるよう DI 機能を WPF アプリに実装したい](https://teratail.com/questions/287007)
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+ > サービス層のプロジェクトにappsettings.jsonを置くのはどうかなと思い、悩み中です。
14
+
15
+ 外からオブジェクトをもらっていきましょう。
16
+
17
+
18
+
19
+ ```C#
20
+
21
+ public class TestDbContext : DbContext {
22
+
23
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
24
+
25
+ optionsBuilder.UseSqlServer("Data Source=tests.db");
26
+
27
+ base.OnConfiguring(optionsBuilder);
28
+
29
+ }
30
+
31
+ }
32
+
33
+ ```
34
+
35
+ ```C#
36
+
37
+ // App.xaml
38
+
39
+
40
+
41
+ using DomainService;
42
+
43
+ using DryIoc;
44
+
45
+ using Prism.DryIoc;
46
+
47
+ using Prism.Ioc;
48
+
49
+ using System.Windows;
50
+
51
+ using UserInterface.Views;
52
+
53
+
54
+
55
+ namespace UserInterface {
56
+
57
+ /// <summary>
58
+
59
+ /// Interaction logic for App.xaml
60
+
61
+ /// </summary>
62
+
63
+ public partial class App {
64
+
65
+ protected override Window CreateShell() {
66
+
67
+ return Container.Resolve<MainWindow>();
68
+
69
+ }
70
+
71
+
72
+
73
+ protected override void RegisterTypes(IContainerRegistry containerRegistry) {
74
+
75
+ // Drylocを利用する場合
76
+
77
+ var container = containerRegistry.GetContainer();
78
+
79
+ container.Register<IDbContextService, DbContextService>(ifAlreadyRegistered: IfAlreadyRegistered.AppendNotKeyed);
80
+
81
+ container.Register<ITestDbContext, TestDbContext>();
82
+
83
+ }
84
+
85
+ }
86
+
87
+ }
88
+
89
+ ```
90
+
91
+
92
+
93
+ ```C#
94
+
95
+ // DbContextService
96
+
97
+
98
+
99
+ using DomainModel;
100
+
101
+ using Microsoft.EntityFrameworkCore;
102
+
103
+
104
+
105
+ namespace DomainService {
106
+
107
+
108
+
109
+ public class DbContextService : IDbContextService {
110
+
111
+ private readonly ITestDbContext _context;
112
+
113
+ public DbContextService(ITestDbContext context) {
114
+
115
+ this._context = context;
116
+
117
+ }
118
+
119
+ }
120
+
121
+ }
122
+
123
+ ```