passing MATLAB's handle objects to .NET function

2 Ansichten (letzte 30 Tage)
Bolivar
Bolivar am 1 Nov. 2013
Bearbeitet: Doug Hull am 1 Nov. 2013
Hello everyone!
Is that possible to give matlab oobject as argument to .Net function? Actually I want to execute some class member asynchroneously. Therefore, the BeginInvoke method should pass the handle of related object to asynchron function. I am using the NetDocDelegate.cs defined in the documentation to which I have added the following line :
public delegated double delRef(dynamic arg);
and my class definition is defined as :
classdef usier < handle
properties
stock
value
end
methods
function obj = usier(stock,value)
obj.stock = stock;
obj.value=value;
end
function receive(obj,objref)
divDel = NetDocDelegate.delRef(@response);
asyncRes =divDel.BeginInvoke(objref,@obj.display);
end
function result=response(obj)
result=[obj.stock,obj.value];
end
function dispay(obj,asyncRes)
result = asyncRes.AsyncDelegate.EndInvoke(asyncRes);
fprintf(1,'neighbor''s stock is:%d\t and value is:%d\n',result(1),result(2));
end
end
end
Then I created two instance of usier class
>>u=usier(12,34);
>> f=usier(45,98);
>> f.receive(u)
the last command should executes the asynchron function and then retreives the result. unfortunately matlab generate the following Error:
No method 'BeginInvoke' with matching signature found for class 'NetDocDelegate.delRef'.
ps:I added the assembly files first with
dllPath = fullfile('c:','MATLAB\DynChannel\','NetDocDelegate.dll');
NET.addAssembly(dllPath);
can someone help me?
Thanks all,
Bolivar

Antworten (0)

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by