asp.net c # публичная статика и одновременные пользователи - PullRequest
1 голос
/ 22 марта 2011

У меня есть файл MyClassFile.cs, который выглядит следующим образом:


public class MyClass1
{
    public static DataTable ReadData(string Connection, string Command, Dictionary Parameters)
    {
        //ADO.NET stuff here to .Fill() the DataTable Below
        return dtTable;
    }

    public static void WriteData(string Connection, string Command, Dictionary Parameters)
    {
        //ADO.NET stuff to write to DB
    }
}

Я использую его в своем Default.aspx.cs так:


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var Parameters = new Dictionary<string, object>
        {
            { "?Parameter1", TextBox1.Text },
            { "?Parameter2", TextBox2.Text }
        };

        DataTable dtTable = MyClass1.ReadData(Connection, Command, Parameters);
        ListView1.DataSource = dtTable;
        ListView1.DataBind();
    }
}

Это для веб-сайта. Буду ли я сталкиваться с проблемами с этим кодом, тем более что ReadData () является общедоступной статической? Что, если одновременно используется много пользователей?

Моя цель - иметь многократно используемые ".ReadData (x, y, z)" и ".WriteData (x, y, z)"

Ответы [ 2 ]

4 голосов
/ 22 марта 2011

Похоже, что эти методы не имеют общего состояния - они не используют статические переменные - так что все должно быть в порядке.уровень представления (или другой слой между ними) для упрощения тестирования - статические методы часто являются врагами тестирования - но это немного другой вопрос.

1 голос
/ 22 марта 2011

Статические методы по своей природе являются поточно-ориентированными, если они не обращаются к объектам, которые совместно используются другими частями вашего приложения. Так что в ваших методах ReadData / WriteData, если вы просто принимаете параметры, создаете соединение с БД, выполняете операторы и возвращаете что-то, тогда вы должны быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...