私はいくつかのアドバイスが必要な次の問題があります。プラグインインフラストラクチャにプロパティクラスを渡す
私は、標準のIPluginインタフェースストラテジによって定義された多数のプラグインを持つ構成を持っています。 これらのインターフェイスのそれぞれは、多数のカスタムクラスのプロパティを定義する多数の外部クラスにアクセスする必要があります。さらに、これらのクラスは多くのベースクラスから継承されています。
ここでの問題は、これらの構造に完全にアクセスするために、 の各プラグインにこれらのプロパティクラスを提示する方法の設計の1つです。
いくつかのクラスを拡張するには、複数のリストがあります。議論のために、それぞれ30〜60のさまざまな財産のサブアイテム を持つリストを最大50個リストします。
私はもちろん、すべてのプロパティクラスを依存クラスとしてインターフェイスクラスに移動することができますが、これらのクラスのほとんどが継承されているので、それは大胆な解決策になります。 refオブジェクトとして渡すことも実行可能な解決策ではありません。
私はそれが助けになるとは思っていないので、私は特定のコードを含んでいませんが、ここでは私は を達成するために少しpsudoバージョンです。
public interface IPlugin
{
ResultsList PluginProcess(Class1 L1, Class2 L2, ...);
}
クラス(n)は
public class Class1 : SomeOtherClass
{
public object1 obj1 {get; set; }
...
public object50 obj50 { get; set;}
}
主他の派生オブジェクトで構成されてもよいです。私は
L1.classes.data[0].codec[2].enabled = true;
and
L2 newclass2 = new L2();
newclass2.nnnn ...
ResultsList.classes.Add(newclass2);
ようなコードを使用できるようにする必要があるプラグイン内
はFinaly Iは第partys、データのカスタム処理を提供するために、プラグインアーキテクチャを使用する必要があります。
建設的な提案を歓迎します。
私は辞書のインターフェースを見ましたが、プロパティ名と値にアクセスするのに多くの検索が必要となるため、検索時間にベンチマークによって置かれました。あなたの提案を受けて、もう一度見ていきます。私がオブジェクトを渡し、Visual Studioですべてのプロパティクラスがローカルにある場合、私はそのデータにアクセスするための簡単で巧妙な方法を望んでいました。ありがとう –