質問編集履歴
3
IDisposeを設定して発生したエラー内容を記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -88,8 +88,18 @@
|
|
88
88
|
}
|
89
89
|
```
|
90
90
|
|
91
|
+
#### 発生したエラー
|
91
92
|
実装したところ別の警告が発生して、Appクラスそのものを大きく修正しないと解決出来ないエラーが発生しました。
|
92
93
|
|
94
|
+
コード|説明
|
95
|
+
---|---
|
96
|
+
CA1065|Dispose は型 NotImplementedException の例外を作成します。この型のメソッドでは例外を発生させることはできません。この例外インスタンスが発生する可能性がある場合は、例外が発生しないようにこのメソッドのロジックを変更します。
|
97
|
+
CA1063|'App' で Dispose(bool) のオーバーライド可能な実装を提供するか、型を sealed としてマークします。Dispose(false) を呼び出す場合は、ネイティブ リソースのみがクリーンアップされます。Dispose(true) を呼び出す場合には、マネージド リソースとネイティブ リソースの両方がクリーンアップされます。
|
98
|
+
CA2000|'new App()' が作成したオブジェクトへの参照がすべてスコープ外になる前に、そのオブジェクトの System.IDisposable.Dispose を呼び出してください。
|
99
|
+
CA1063|'App.Dispose' を変更し、Dispose(true) を呼び出したのちに現在のオブジェクト インスタンスで GC.SuppressFinalize (Visual Basic の 'this' または 'Me') を呼び出して、結果を戻すようにします。
|
100
|
+
CA1816|GC.SuppressFinalize(object) を呼び出すように App.Dispose() を変更します。これにより、ファイナライザーを導入する派生型で、その呼び出しのために 'IDisposable' を再実装する必要がなくなります。
|
101
|
+
|
102
|
+
|
93
103
|
## 所見
|
94
104
|
エラーの解説ページの修正方法が、IDisposableインターフェイスとして実装と書かれている事です。
|
95
105
|
[CA1001:破棄可能なフィールドを所有する型は、破棄可能でなければなりません](https://docs.microsoft.com/ja-jp/visualstudio/code-quality/ca1001?view=vs-2019)
|
2
誤記削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,17 +38,6 @@
|
|
38
38
|
private NotifyIconWrapper NotifyIconWrapper = new NotifyIconWrapper();
|
39
39
|
|
40
40
|
/// <summary>
|
41
|
-
/// System.Windows.Application.Startup イベントのラッパー
|
42
|
-
/// </summary>
|
43
|
-
/// <param name="e"></param>
|
44
|
-
protected override void OnStartup(StartupEventArgs e)
|
45
|
-
{
|
46
|
-
base.OnStartup(e);
|
47
|
-
this.ShutdownMode = ShutdownMode.OnExplicitShutdown;
|
48
|
-
this.notifyIcon = new NotifyIconWrapper();
|
49
|
-
}
|
50
|
-
|
51
|
-
/// <summary>
|
52
41
|
/// System.Windows.Application.Exit イベントのラッパー
|
53
42
|
/// </summary>
|
54
43
|
/// <param name="e"></param>
|
1
ソースにonstartup関数を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
タスクメニューに表示するアイコンのラッパーです。
|
22
22
|
|
23
23
|
アプリケーションを終了する際にコンポーネントクラスを開放します。
|
24
|
+
開始時にインスタンスを作る処理を記載し忘れておりました。
|
24
25
|
|
25
26
|
```cs
|
26
27
|
namespace SampleProject
|
@@ -34,16 +35,27 @@
|
|
34
35
|
/// <summary>
|
35
36
|
/// タスクトレイに表示するアイコンのコンポーネント
|
36
37
|
/// </summary>
|
37
|
-
private NotifyIconWrapper
|
38
|
+
private NotifyIconWrapper NotifyIconWrapper = new NotifyIconWrapper();
|
38
39
|
|
39
40
|
/// <summary>
|
41
|
+
/// System.Windows.Application.Startup イベントのラッパー
|
42
|
+
/// </summary>
|
43
|
+
/// <param name="e"></param>
|
44
|
+
protected override void OnStartup(StartupEventArgs e)
|
45
|
+
{
|
46
|
+
base.OnStartup(e);
|
47
|
+
this.ShutdownMode = ShutdownMode.OnExplicitShutdown;
|
48
|
+
this.notifyIcon = new NotifyIconWrapper();
|
49
|
+
}
|
50
|
+
|
51
|
+
/// <summary>
|
40
52
|
/// System.Windows.Application.Exit イベントのラッパー
|
41
53
|
/// </summary>
|
42
54
|
/// <param name="e"></param>
|
43
55
|
protected override void OnExit(ExitEventArgs e)
|
44
56
|
{
|
45
57
|
base.OnExit(e);
|
46
|
-
this.
|
58
|
+
this.NotifyIconWrapper.Dispose();
|
47
59
|
}
|
48
60
|
}
|
49
61
|
}
|