Мне нужно мнение о написании управляемой (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);
}
В основном я спрашиваю, если
класс-оболочка должен быть просто оболочкой для неуправляемых методов, и все объекты вызывают эти методы напрямую.
класс-оболочка должен быть аккуратно интегрирован с объектами и максимально скрывать «неуправляемый способ» работы.
Я склоняюсь ко второму варианту, но хотелось бы услышать и другие мнения, так как у обоих способов есть свои плюсы и минусы.