我有一个WebMethod
服务于 Ajax 自动完成扩展器的数据源。
FontnmsList_AutCpltDataSrc()
所以它必须是static
......除非我将通过另一种方法来实现它......例如Web Service
,因为我不想使用,实际上,这不是这里的问题。
所以......作为一个静态方法,它需要与当前应用程序的其余数据协同工作......这不是静态的......这里有一个小问题......
现在,正如我被建议一般不要使用静态(指的是asp.net
),并且在尝试遵循该建议时,
我可以看到,为了允许与之交互...... web 方法有点引导我将所有其他应用程序元素/数据类型和方法转换为使用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
网络方法FontnmsList_AutCpltDataSrc()
范围。
所以这让我想知道......我在这里缺乏什么基本知识(我的意思是,当你开始学习 .net 时,你有没有进入这个路口?
至于所谓的 SO A Real Question :
作为这种情况的解决方案的解决方法是什么,(它只是一个例子。因为应该有许多其他像这样的“路口”,你可以想出)
我应该认为应该有某种方式,bridge
在这两个实体之间,在写作时我可以考虑传入非静态数据作为参数,
所以我在这里想念什么。对于上面的 subjetced 代码,正确的解决方案是什么?