質問編集履歴
1
コードの意図について補足しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -461,3 +461,55 @@
|
|
461
461
|
}
|
462
462
|
|
463
463
|
```
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
##※追記事項
|
468
|
+
|
469
|
+
コード全体を改善することが第一の目標なのですが、
|
470
|
+
|
471
|
+
以下のようなクライアントコードによってメッセージデータが取得できるようになれば、
|
472
|
+
|
473
|
+
更に良いだろうと思っています。
|
474
|
+
|
475
|
+
以下は一例です。
|
476
|
+
|
477
|
+
```C#
|
478
|
+
|
479
|
+
namespace Project1
|
480
|
+
|
481
|
+
{
|
482
|
+
|
483
|
+
class ClientClass
|
484
|
+
|
485
|
+
{
|
486
|
+
|
487
|
+
public void ClientCode()
|
488
|
+
|
489
|
+
{
|
490
|
+
|
491
|
+
var provider = new Project1MessageProvider();
|
492
|
+
|
493
|
+
var creator = new LowLevelAssembly.MessageDataCreator(provider);
|
494
|
+
|
495
|
+
var messageData = creator.GetMessageData(Project1MessageKind.TaskDone);
|
496
|
+
|
497
|
+
Console.WriteLine($"ID:{messageData.Id } Level:{messageData.MessageLevel} Content:{messageData.Message}");
|
498
|
+
|
499
|
+
}
|
500
|
+
|
501
|
+
}
|
502
|
+
|
503
|
+
}
|
504
|
+
|
505
|
+
```
|
506
|
+
|
507
|
+
Project1MessageProviderクラスのインスタンスひとつにつきメッセージをひとつしか
|
508
|
+
|
509
|
+
取得できないような仕組みになってしまっているのは、決して意図したことではなく、
|
510
|
+
|
511
|
+
これ以外に実現方法が分からなかったからです。
|
512
|
+
|
513
|
+
本当はGetMessageメソッドの引数にはProjectMessageKind型の変数をとりたいですし、
|
514
|
+
|
515
|
+
その他のプロジェクトにおいても、そのプロジェクトに固有のメッセージ列挙体を引数としたいです。
|