2011-09-14 13 views
1

だから私はのLaserficheサーバ用のC#のテストスクリプトを書いている、と私のコードは次のようになります:私はそれを構築する場合暗黙的LFFolderに<type>を変換できません

static void Main() 
{ 
    conn.Create(db); 
    LFFolder testdir = db.GetEntryByPath(testdirloc); 
    LFDocument test; 
    test.Create("test", testdir, vol, true); 
    test.Dispose(); 
    conn.Terminate(); 
} 

、私は言われます:

'オブジェクト'を暗黙的に 'LFSO82Lib.LFFolder'に変換することはできません。明示的な変換が存在する(キャストがありませんか?)

これはひどいニュースです。 Laserfiche Integratorのキットによると、LFSO82Lib.LFFolderはLFFolderオブジェクトであり、メソッドGetEntryByPath( "Path")はLFFolderオブジェクトを取得します。 VB.NETでこれと同等のコードを書くと、これが成り立つからです。 Laserficheサーバに慣れていない人のため

、LFFolderは、様々なGetEntryBy_ _ _方法が、明らかにしないことによって明らかに得られる、単にLFSO82Lib内のオブジェクトです。誰かがこれで私を助けることができますか?明示的な変換を使用して

答えて

0

てみ:上記のように

LFFolder testdir = (LFFolder)db.GetEntryByPath(testdirloc); 
+0

ありがとうございました。しかし、なぜ私はそれがうまくいかないのでしょうか?私は他の変数をうまく開始することができました。LFServer serv = app.GetServerByName( "LF-Name");私は明示的な変換を強制的に欠いている重要なことはありますか? – jayjyli

+0

@Tim:申し訳ありませんが、私はそれらのオブジェクトを使用せず、私はその理由を知らない。とにかく、エラーは私の心の中で解決が容易になったというとても分かりました。私はあなたの問題を解決してうれしいです:) – Marco

+0

@Tim:VSであなたのマウスを 'GetEntryByPath'に置き、構文が現れるのを待つか、F12を押して定義に行きます。どのような種類のオブジェクトが返されているかを確認してください: 'オブジェクト'か 'LFFolder'ですか? – Marco

0

あなたが返されたオブジェクトをキャストしていませんでした。 laserfiche GetEntryByPath()メソッドは、LFEolderオブジェクトまたはLFDocumentオブジェクトのいずれかになる可能性のあるILFEntryオブジェクトを返します。したがって、オブジェクトを新しい変数にロードする前に、そのオブジェクトを型にキャストする必要があります。これはC#のLFSOではかなり一般的です。

関連する問題