Web サイトを作成しましたが、データベースに接続するメソッドなど、プロジェクト全体で頻繁に使用するすべてのコードを一元化するためのクラスが必要です。質問: このクラスを App_Code フォルダーに作成した後、aspx.cs ページでどのように使用できますか? つまり、それを参照する必要がありますか?名前空間の追加を通知する必要がありますか?
ありがとう!
クラスが名前空間にラップされている場合は、名前空間に一致する using ステートメントが必要です。たとえば、クラスが次のような名前空間にラップされている場合:
namespace My.Namespace
{
public class Foo
{
//Methods, properties, etc.
}
}
次に、そのクラスを使用したい場所に追加する必要があります
using My.Namespace;
定義したクラスを利用するファイルの先頭に移動します。その後、期待どおりにクラスを使用できます。
Foo foo = new Foo(); //for a new instance
Foo.Bar(); //for a static method
もちろん、これは、クラスが同じアセンブリにあり、 GAC への追加を台無しにしたくないことを前提としています。
または、何らかの理由で using ステートメントを使用しない場合は、クラスの完全修飾名を使用できます。
My.Namespace.Foo foo = new My.Namespace.Foo(); //for a new instance
My.Namespace.Foo.Bar(); //for a static method
これは、競合する名前空間がある場合に最も役立ちます。
namespace My.Namespace
{
public class Foo
{
//Methods, properties, etc.
}
}
どこか、そして
namespace MyOther.Namespace
{
public class Foo
{
//Methods, properties, etc.
}
}
他の場所で、両方を同じスコープで使用する必要がありました。
クラス ファイルを public として作成すると、プロジェクトのどの部分でもクラス ファイルにアクセスできるようになります。
namespace applicationName
{
public class DataManager
{
public static DataTable GetData(StringBuilder sql)
{
}
}
}
コードから DataManager にアクセスできます。
DataManager.GetData(SQL);
はい、クラスを に配置し、可能であればnamespace
クラスを作成することを検討してください。そうstatic
すれば、クラスをインスタンス化せずにプロジェクト全体のコードで使用できます。これは、オブジェクトを渡して動作するユーティリティ クラスでは一般的ですが、実際のユーティリティ メソッドをクラス インスタンスの一部にする必要はありません。
例えば:
namespace My.Utilities
{
public class static ConnectionStringHelper
{
public static string GetConnectionString()
{
// Logic here to actually get connection string
return yourConnectionString;
}
}
}
これで、プロジェクト内のコードでMy.Utilities
名前空間を参照するだけで、次のようにGetConnectionString()
メソッドを使用できるようになります。
using My.Utilities;
string connString = ConnectionStringHelper.GetConnectionString();
いくつかの方法でそれを行うことができます。技術的には、名前空間を完全に削除することができ、コードはすべて無料になります (どこからでも自然にアクセスできます)。私は個人的に名前空間を使用することを好みますが、人々はそれを避けているようです。
クラス Foo が Some.Namespace にある場合は、次のように参照できます。
方法 1:
Some.Namespace.Foo foo = new Some.Namespace.Foo()
方法 2: 「使用」コマンドを使用する
クラスが Some.Namespace 内にあり、クラス名の前にすべてのジャンクが必要ない場合は、次を追加できます。
using Some.Namespace;
ファイルの先頭に。
あなたの言っていることが理解できないかもしれません。セットアップについて話している場合は、すべてを管理する集中クラスを作成できます。このクラスはシングルトンにすることができます。例えば:
class MyClass
{
public static MyClas Singliton;
static MyClass()
{
Singliton = new MyClass();
}
public void someFunction()
{
}
}
これにより、クラスへの単一の参照が作成および管理されるため、すべてがそこから管理されます (したがって、「シングルトン」と呼ばれます)。その結果、次の方法でアクセスできます。
MyClass.Singliton.someFunction();
シングルリトン インスタンスが上書きされないように保護する方法はいくつかありますが、これが基本的な考え方です。クラスを再作成せずに単一の場所から管理したい場合は、シングルトンが最適です。