I've been enjoying the power of working with .NET types in Matlab using the Matlab .NET Interface.
I'm currently attempting a set of Matlab wrappers to expose a .NET API (wrapping to make the API feel "Matlab-y"). One of the things I find myself doing over and over is creating static helper methods in Matlab to translate DTOs from a .NET entity to a Matlab struct or class.
Does anyone know of an AutoMapper-like tool to help with this mapping?
Edit:
Here's an example. In a C# library:
namespace MyLib
{
public class MyClass
{
public string MyString { get; set; }
public int MyInt { get; set; }
public MyClass(string myString, int myInt)
{
MyString = myString;
MyInt = myInt;
}
}
}
Then, in Matlab:
NET.addAssembly('MyLib.dll');
% create an instance of my .NET type
netObject = MyLib.MyClass('high', 5);
% map that instance to values in a Matlab struct
% since Matlab's dynamic, create the struct on the fly
matlabStruct = map(netObject);
% assert that the values have been mapped correctly
assert(isstruct(matlabStruct));
assert(isfield(matlabStruct, 'MyString'));
assert(isfield(matlabStruct, 'MyInt'));
assert(matlabStruct.MyString == 'high');
assert(matlabStruct.MyInt == 5);
% equivalent code w/o mapper:
matlabStruct.MyString = char(netObject.MyString);
matlabStruct.MyInt = int32(netObject.MyInt);