WebMethod
DataSourceとしてAjaxAutoCompleteExtenderを提供するがあります。
FontnmsList_AutCpltDataSrc()
ですから、static
別のアプローチで実装しない限り、それWeb Service
は、使用したくないので、実際には、とにかくここでは問題ではありません。
したがって...静的メソッドであり、現在のアプリケーションの残りのデータと連携する必要があります...静的ではありません....ここに少し問題があります..
今、私は一般的に静的なものを使用しないようにアドバイスされているので(参照していたasp.net
)、そしてそのアドバイスに従おうとしている間、
私はそれとの相互作用を可能にするために...ウェブメソッドは私が他のすべてのアプリケーション要素/データ型とメソッドをstatic
修飾子を使用するように変換するように導いていることがわかりました、例えば、
これは私が現在のプロジェクトで出会った例です。
// non static
public SeSn.CurrentSesionVariablsTmplt ExtractSesnVar()
{
SeSn.CurrentSesionVariablsTmplt RetrndAppGlobals = SeSn.GetValueAS.ACloneOfGlobalsObj("_CurrentSesionGlobals");
return (SeSn.CurrentSesionVariablsTmplt)RetrndAppGlobals ;
}
これがオートコンプリートエクステンダーを担当するWebメソッドです
public static List<string> FntsList = new List<string>();
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod(EnableSession = true)]
public static List<string> FontnmsList_AutCpltDataSrc(string prefixText)
{
if (ExtrctSesnVar().Fntlist != null)
{
//here too , non of these are , except for the List of course
FntsList = RflectMeths.ClassFldsAsList<fntNams>();
CurrSesnDatabag.Fntlist = FntsList;
SeSn.Modify(Act.Add, App.VarNms._CurrentSesionGlobals, CurrSesnDatabag);
}
else
FntsList = ExtractSesnVar().Fntlist;
return AutoComplete.FromListStr(prefixText, FntsList);
}
したがって、内での作業には非静的ExtractSesnVar()
が必要です
static
WebメソッドスコープFontnmsList_AutCpltDataSrc()
。
ですから、私は不思議に思います...ここで私が不足している基本的な知識は何ですか(:つまり、.netを学び始めたときに、このジャンクションに入ったことはありますか?
そして、SO A RealQuestionで何と呼ばれるかについて:
このシナリオの解決策としての回避策は何ですか(これは1つの例にすぎません。このような「ジャンクション」は他にもたくさんあるはずなので、思いつく可能性があります)
bridge
書き込み中にこれら2つのエンティティの間に、静的ではないデータをパラメータとして渡すことを考えることができる、何らかの方法があるはずだと思う必要があります。
だから私はここで何が欠けていますか。上記のサブジェクトされたコードの正しい解決策は何ですか?