1

我正在调用 IDataObject.GetData() 并且它不适用于派生类。我在一个程序集(DLL)中进行调用,两个类都在第二个程序集(DLL)中。如果这是跨程序集,是否还有其他必须做的事情?

不工作是指它返回null。对于 GetDataPresent,它返回 false。

bool returnsFalse = dea.Data.GetDataPresent(typeof (ODataBaseNode));
bool returnsTrue = dea.Data.GetDataPresent(typeof (ODataEntitySetNode));
returnsFalse = dea.Data.GetDataPresent(typeof (ODataBaseNode).FullName, true);
returnsTrue = dea.Data.GetDataPresent(typeof (ODataEntitySetNode).FullName, true);

// code in other DLL
public class ODataEntitySetNode : ODataBaseNode
{

谢谢 - 戴夫

4

1 回答 1

0

您可以通过检查以下值来检查类型名称的确切含义:

dea.Data.GetFormats()[0]

这应该包含您需要传递以检索数据的字符串。我的猜测是跨程序集需要做一些“特别的事情”。

关于派生类型和GetDataPresent,检查这个答案,它提出了一个不同的解决方案。

于 2012-11-08T16:00:39.633 回答