Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果跨程序集,IDataObject.GetData(字符串,true)将失败_C#_Types - Fatal编程技术网

C# 如果跨程序集,IDataObject.GetData(字符串,true)将失败

C# 如果跨程序集,IDataObject.GetData(字符串,true)将失败,c#,types,C#,Types,我正在调用IDataObject.GetData(),它不适用于派生类。我在一个程序集(DLL)中进行调用,两个类都在第二个程序集(DLL)中。如果跨程序集执行此操作,是否必须执行其他操作 不工作的意思是它返回null。对于GetDataPresent,它返回false bool returnsFalse = dea.Data.GetDataPresent(typeof (ODataBaseNode)); bool returnsTrue = dea.Data.GetDataPresent(ty

我正在调用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
{

谢谢-dave

您可以通过检查以下项的值来检查类型名称的确切内容:

dea.Data.GetFormats()[0]
这应该包含检索数据所需传递的字符串。我的猜测是,跨组件需要做一些“特殊的事情”


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

错误是什么?编译问题?你有密码吗?这个问题的信息太少了。