1

IDataObject.GetData()を呼び出していますが、派生クラスでは機能しません。1つのアセンブリ(DLL)で呼び出しを行っており、両方のクラスが2番目のアセンブリ(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 に答える