2011-01-17 2 views
1

特定のクラス/インタフェース/ ...を、using namespace_nameというディレクティブではなく、その名前空間で囲んで参照する方法がありますか。特定のクラス/インタフェース/ ...をusing namespace_nameというディレクティブではなく、その名前空間で囲んで参照する方法はありますか?

私は、SAP .NETコネクタを使用するWebサイトで作業しています。私は既にコネクタddlの参照を追加し、その名前空間 "using namespace_name"を参照するか、またはコネクタ名前空間ではなくクラス名前空間を別の名前空間に設定しました。

このエラーメッセージでコネクタクラスに関するエラーが発生しました。 "型または名前空間使用しているディレクティブまたはアセンブリ参照がありませんか? "

しかし、名前空間の名前をコネクタの名前空間に変更しているうちに、すべてうまくいっていますか?

// Set namespace to be IDestinationConfiguration interface namespace. 
// Using this, everything is going well. 
namespace SAP.Middleware.Connector 
{ 
    public class ConnectorConfiguration : IDestinationConfiguration 
    { 
    } 
} 

// Using that way; it's not working, and got an error regarding IDestinationConfiguration even it belongs to refernced namespace. 
using SAP.Middleware.Connector; 

public class ConnectorConfiguration : IDestinationConfiguration 
{ 
} 

したがって、コネクタの種類によって、クラスの名前空間を名前空間に設定する必要がありました。

これは可能ですか?もしそうなら、どうですか?

+0

私が理解しているように、そのコードスニペットは「働いています」。エラーを投げかけている(動作させたい)と思うコードを貼り付けることができますか?実際には "namespace_name"ではなく実際の名前空間である可能性があります。 ;-)ただし、完全修飾名(例えば、 'SAP.Middleware.Connector.IDestinationConfiguration'など)を使用して動作するかどうか試してみてください。これは' SAP.Middleware.Connector'を使用するのと変わらないはずですが、より多くの情報のための良いテスト... :) – Chris

+0

@Chris、コードが更新されました。 – Ahmed

+1

これらは異なる状況が1つあります。 IDestinationConfiguationが2つの名前空間で宣言されていて、どちらも使用に含まれていた場合。 @ジェームス; –

答えて

0

これはあなたの後のことですか?

public class ConnectorConfiguration: SAP.Middleware.Connection.IDestinationConfiguration 
{ 

} 

あなたが好きな場合は、あなただけの使用が使用されていないすべてのクラス/インタフェースの完全修飾名前空間名を使用する必要があり、usingsせずにすべてのコードを書くことができます。

あなたはこのしよう:それが動作する場合

using SAPTEST = SAP.Middleware.Connection; 
namespace TestNamespace 
{ 
    public class ConnectorConfiguration: SAPTEST.IDestinationConfiguration 
    { 
    } 
} 

を、それはあなたがSAPTESTを削除する場合は、IDestinationConfigurationがあまりにも別の名前空間で宣言する必要があります動作しません。

+0

IDestinationConfigurationインターフェイスだけでなく、コネクタタイプの種類ごとにこれを実行する必要がありますが、SAP.Middleware.Connectorを名前空間名として使用してクラスを囲む場合、すべてが順調です。 – Ahmed

+0

はい、私は完全修飾名前空間について知っていますが、これは問題ではありません。 – Ahmed

+0

はい、指定された名前空間にコードを書き込むと、その名前空間はスコープ内に '自動的に'存在するためです。しかし、これを行う必要はありません。あなたはusingを使うことができます。あるいは、明示的に型を完全修飾することができます。 –

1

私もこれに走ったと私は最終的にhttp://forums.sdn.sap.com/thread.jspa?threadID=1876430でポストに答えを見つけるまで、言った最後の行それを把握することができませんでした:.NET「ターゲットフレームワークがあることを確認し、また、」

をv4.0 "ではなく" .NET v4.0クライアント " - 必要なSystem.Web名前空間を取得します。"

私のプロジェクトは、4.0のクライアントターゲットフレームワークをターゲットにしていました。これを.NET Freamework 4.0に変更すると、すべての参照が期待通りに機能しました。

関連する問題