Мне нужно мнение о написании управляемой (C #) оболочки для неуправляемой C ++ DLL.
Допустим, у меня есть такой объект:
public class ManagedObject
{
public void DoSomethingWithTheObject()
{
}
}
и предположим, что метод DoSomethingWithTheObject () должен выполнить вызов неуправляемого метода DLL.
Теперь мне на ум приходят две приемлемые возможности:
public void DoSomethingWithTheObject()
{
DllWrapperClass.DirectCallToUnmanagedMethod(some_value_type);
}
и
public void DoSomethingWithTheObject()
{
DllWrapperClass.MethodName(this);
}
Что я в основном спрашиваю, если
класс-обертка должен быть просто оберткой для неуправляемых методов, и все объекты вызывают эти методы напрямую
класс-обёртка должен быть аккуратно интегрирован с объектами и скрывать как можно больше «неуправляемого способа» работы
Я склоняюсь ко второму варианту, но я хотел бы услышать некоторые другие мнения, поскольку оба способа имеют свои плюсы и минусы.