Я допускаю, что иногда более глубокие нюансы ключевого слова static избегают меня.
Вот что я вижу:
public partial class Default : CSSDEIStatusBase
{
private static Default _csWitWeb;
protected void Page_Load(object sender, EventArgs e)
{
//DoStuff
_csWitWeb = this;
//OtherStuff
}
public static void ForceLoadSyncOperation(int? index)
{
Default._csWitWeb.LoadSelectedSyncOperation(index);
}
}
Единственные ссылки на ForceLoadSyncOperation:
Default.ForceLoadSyncOperation(index);
или
Default.ForceLoadSyncOperation(null);
Оба эти вызова происходят из:
public partial class DataOriginUserControl : System.Web.UI.UserControl
и не находятся внутри статических методов.
EG:
protected void btnCancelSyncOperation_Click(object sender, EventArgs e)
{
this.lblErrorMessage.Text = string.Empty;
this.lblErrorMessage.Visible = false;
int index = _syncOperation.Sequence - 1;
Default.ForceLoadSyncOperation(index);
}
Все это кажется мне очень странным.Этот запах кому-то еще?Не совсем уверен, как это распутать, поскольку я не могу точно создать экземпляр страницы Default внутри пользовательского элемента управления.
Мысли?Спасибо за чтение.
protected void LoadSelectedSyncOperation(int? index)
{
SyncOperationConfiguration[] syncOperations = CSServiceClient.GetInterfaceConfiguration().SyncOperationConfigurations.ToArray();
PopulateSyncOperationsListView(syncOperations);
SyncOperationConfiguration syncOperation = null;
try
{
syncOperation = syncOperations[index.HasValue ? index.Value : 0];
}
catch
{
syncOperation = syncOperations[0];
}
ucDataOrigin.LoadSyncOperationData(syncOperation);
Session["ConfigMenuActiveIndex"] = 1;
menuConfiguration.Items[(int)Session["ConfigMenuActiveIndex"]].Selected = true;
mvwConfiguration.ActiveViewIndex = (int)Session["ConfigMenuActiveIndex"];
}