我的代码给了我这个错误,我没有得到原因和做法 "错误13非静态字段,方法或属性需要对象引用“System.Web.UI.Page.Session.get'" 我已经在使用会话来获取另一个页面和方法的参数并且工作正常,现在我想在我为我的应用程序创建的预定作业中使用相同的参数,但是没有用。
public static bool UpdateActivationResult(string recordId, string resultPart, string failureMessage, int reconciliation_count)
{
OracleConnection conn = new OracleConnection();
OracleTransaction transaction = null;
OracleCommand cmd;
string updateQuery = "";
int rowsUpdated = 0;
string notes = "";
string branch = clsUtility.GetHO;
clsUtility.CDFOperations operation = clsUtility.CDFOperations.CanNotActivateCard;
string userLoggedBranch = "";
try
{
userLoggedBranch = Session["userDegaS"].ToString(); //this row is giving me error
clsUtility.WriteLog4Net(recordId + " - " + resultPart + " - " + failureMessage, null, clsUtility.LogType.Debug, "");
using (conn = new OracleConnection(clsUtility.ConnectionString))
{ etc
我想在调用此方法时使用此参数
if (reconciliation_count == 5 && !resultPart.Equals("SUCCESS"))
{
Utility.clsUtility.SendNotificationAsHTML(recordId, branch, operation, userLoggedBranch);
}
知道我哪里做错了吗?
答案 0 :(得分:0)
将userLoggedBranch声明为静态变量或更好的方法是简单地访问相应方法中的会话,而不是将其作为参数传递
答案 1 :(得分:0)
Session
属性是一个非静态属性,在.NET(https://docs.mongodb.com/ecosystem/drivers/python/)的基础Controller
上定义。
您的问题列出的代码,您试图从没有静态方法访问此非静态方法。这是不可能的。
您可以通过三种方式解决问题:
Session
属性。您还可以将所需的属性(userLoggedBranch
)作为参数传递到方法UpdateActivationResult
中。无论采取什么行动,该方法都必须传递此值。
这就是:
public static bool UpdateActivationResult(
string recordId,
string resultPart,
string failureMessage,
int reconciliation_count,
string userLoggedBranch) {
// Your method code
传递会话本身或您可以访问会话的内容(例如HttpContext
或HttpRequest
)。