考え方を「逆に」して、そのプロパティとメソッドを公開するのはプラグインだと言うと、理解しやすいかもしれません。
.Net では、Interfaceを定義して、実装する必要があるメソッドとプロパティを定義できます。インターフェイスは、これらを定義するだけで、それ自体ではあまり機能しません。
これにより、メイン プログラムはこのプラグインを dll の形式で動的にロードし、インターフェイスが実装されているかどうかを確認できます。それがメインプログラムである場合、それらはdll /ライブラリによって公開されているため、使用呼び出しによってどのメソッドを呼び出すか。この段階では、dll 自体はメイン プログラムについて何も知りません。
プラグインには、メイン プログラム (テキストまたはその他のもの) からデータを取得するためのパラメーターを使用できるメソッドがあります。そのため、メイン プログラムがプラグインを呼び出すと、同時に情報が提供されます。データは、異なるタイプのデータを保持するクラスにすることができます。このようにして、プラグインは提供されたメイン アプリケーションのデータにアクセスできます。
.Net は、.net 4+ から MEF (Managed Extensibility Framework) と呼ばれるプラグイン システムも提供します。詳細については、こちらを参照してください:
http://msdn.microsoft.com/en-us/library/dd460648.aspx
http://www.codeproject.com/Articles/167321/MEF-with-ASP-NET-Hello-世界