特定のクラス/インターフェイス/…を参照する方法はありますか?
-
11-10-2019 - |
質問
特定のクラス/インターフェイス/...を参照する方法はありますか?
として、SAP .NETコネクタを使用するWebサイトに取り組んでいます。コネクタDDLのリファレンスをすでに追加し、名前空間を「namespace_nameを使用して」参照しているとき、またはコネクタネームスペースではなく別の名前にクラスの名前を設定しています。
「タイプまたは名前空間が見つからなかった、使用法またはアセンブリリファレンスが欠落しているのか」というエラーメッセージでコネクタクラスに関するエラーが発生しました。
しかし、名前空間名をConnector NameSpaceに変更している間、すべてが順調に進んでいますか?!
// 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
{
}
そのため、コネクタの種類により、クラスの名前空間を名前空間に設定することが強制されました。
これは可能ですか?もしそうなら、どうですか?
解決
これはあなたが望んでいるものですか?
public class ConnectorConfiguration: SAP.Middleware.Connection.IDestinationConfiguration
{
}
必要に応じて、すべてのコードを使用せずに記述できます。使用していないクラス/インターフェイスのすべての完全に適格な名前空間名を使用するだけです。
これを試してみると:
using SAPTEST = SAP.Middleware.Connection;
namespace TestNamespace
{
public class ConnectorConfiguration: SAPTEST.IDestinationConfiguration
{
}
}
それが機能しますが、Saptestを削除しても機能しない場合は、IdestinationConfigurationも別の名前空間で宣言する必要があります。
他のヒント
私もこれに出くわしましたが、投稿でついに答えを見つけるまで、それを理解できませんでした http://forums.sdn.sap.com/thread.jspa?threadid=1876430, 、最後の行:
「また、ターゲットフレームワークが「.NET V4.0「NOT」.NET V4.0クライアント」であることを確認してください。そのため、必要なシステムを取得します。」
私のプロジェクトは、4.0クライアントのターゲットフレームワークを対象としていました。 .NET FreamWork 4.0に変更したら、すべての参照が期待どおりに機能しました。