Is it a good idea to use many MarshalByRefObject objects that will be list items returned from the plugin or is there some better way?

    1 answer 1

    Not good. Types inherited from MarshalByRefObject are used only to transfer data across the border. As soon as you receive this data from someone, convert it to your own types (get some class of type ListItem) - pass all the data, and display the items of your type in the list.

    This will save you from unnecessary changes in the code when you change the contract.