Ответы пользователя по тегу C#
  • Дерево выражений не может содержать динамическую операцию?

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    Во первых не логично использоватьFind(...условие...).FirstOrDefault(), потому что Find может throw ArgumentNullException в случае эсли не будет такого элемента который будет задовольнять условие а если будет, он не вернет колекцию а обьект.

    Используй лутше FirstOrDefault(...условие...) он в таком случае вернет null.
    Ответ написан
    Комментировать
  • Xpath как получить 1 первый элемент?

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    попробуйте так:
    var elems = $x('//*[@class="name_class"]'),
          firstElem;
    if(elems.length) {
       firstElem = elems[0];
    }
    console.log(firstElem);
    Ответ написан
    Комментировать
  • Как выбрать оптимальное зеркало для WebService?

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    Можно написать функцию на javascript'e используя таймер и загрузку небольшого количества информации с каждого сервера, или не с каждого, в зависимости от результатов. На основе этих данных - выбрать тот что меньше времени занял, потом подставлять соответствующую url.

    Результат можно сохранить в базе данных на сервере, если пользователи регаются, иначе в localstorage
    Ответ написан
  • Как правильно хранить и обрабатывать данные на C#

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    System.Xml.Serialization.XmlSerializer reader = 
            new System.Xml.Serialization.XmlSerializer(typeof(User));
        System.IO.StreamReader file = new System.IO.StreamReader(
            @"c:\temp\userData.xml");
        UserData user= new UserData();
        user = (UserData)reader.Deserialize(file);
    if(user!=null)
        Console.WriteLine(user.lastlogin); // тут будет доступ к полю lastlogin объекта user

    в программе создайте класс объекта типа того
    public class UserData
    {
         public string userlogin{get;set;}
    }


    Если вам нужно доступ такой как вы писали выше - используйте что то типа того:
    XmlNodeList elemList = doc.GetElementsByTagName("lastlogin");
        for (int i = 0; i < elemList.Count; i++)
        {
            Console.WriteLine(elemList[i].InnerXml);
        }
    Ответ написан
  • Как правильно хранить и обрабатывать данные на C#

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    AppConfig используют для управления приложением, но никак ни сохранением в него данных приложением. Я так понимаю, вам нужно сохранять данные пользователя, и правильно, используйте xml. Вот тут пример как писать в xml,
    а тут про чтение. А про чтение - лучше считать один раз весь файл xml а потом только брать данные из объекта, хотя зависит от размеров файла
    Ответ написан
  • Как написать метод загрузки файла на сервер с помощью ASP.NET WebAPI?

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    [HttpPost()]
    public async Task<HttpResponseMessage> Post()
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }
        var streamProvider = new MultipartFormDataStreamProvider(@"C:\Uploads");
        List<string> files = new List<string>();
        try
        {
          // Read the MIME multipart content using the stream provider we just created.
           await Request.Content.ReadAsMultipartAsync(streamProvider);
            //await Request.Content.ReadAsMultipartAsync();
    
            foreach (MultipartFileData file in streamProvider.FileData)
            {
               files.Add(file.LocalFileName);
            }
    
            // Send OK Response along with saved file names to the client. 
            return Request.CreateResponse(HttpStatusCode.OK, files);
         }
          catch (Exception e)
         {
           return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
        }
    }
    Ответ написан
    Комментировать
  • JSON в C# класс

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    У вас должно быть что то типа таких класcов:
    public class InnerObject
    {
         public string InnerQuestion{get;set;}
         public int Number{get;set;}
         public List<int> Numbers{get;set;}
    }
    public class OuterObject // этот класс - представление json объекта
    {
         public string OuterQuestion{get;set;}
         public List<InnerObject> ListOfObjects{get;set;}
         public Dictionry<string, object> Dict{get;set;} // тут не уверен т.к. не знаю возможно ли повторение ключей, в более общем случае используйте Dictionry<object, object>
    }
    
    //в исполняемой среде :
    var jss = new JavaScriptSerializer();
    OuterObject object = jss.Deserialize<OuterObject>(json_data);

    Но тут нужно уже поиграться с именами свойств класса, чтобы все красиво само десериализировалось
    Ответ написан
    Комментировать
  • Ошибка при работе с json.net

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    auth_id это строка формата json? Если да - то назовите ее правильно. Возможно формат строки не соответствует json, в результате JObject.Parse не смог распарсить строку, в итоге строка access_token не будет существовать т.е. будет иметь значение null , т.к. нету элемента "access_token" в test , а вызвав метод ToStirng() вылетит exception по той причине что строка должна быть не null.

    Разве сложно продебажить код ?
    Ответ написан
  • ASP MVC и Ninject или другой ioc. Как правильно использовать, организовать структуру?

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    Ninject полезен в больших проектах, где присутствует сильная связанность к конкретной реализации. Т.е. если в какое то время вам нужно будет заменить какой то класс то вам не придется править зависимой код (а таких мест может быть много), модули связаны с интерфейсами которые вы связываете с конкретными реализациями в DependencyResolver'е.

    Если нужно поменять реализацию какого то класса, вам нужно будет поменять связь интерфейса с конечной реализацией класса в одном месте DependencyResolver'а.

    В результате в вашем коде не должно остаться записей создания объектов, только их интерфейсы.

    А на счет подключения/удаления сборок - это уже другая тема. Суть использования ninject к этому не относиться.
    Ответ написан
    Комментировать
  • Как реализовать поиск в textbox?

    dzedzinskiy
    @dzedzinskiy
    Full stack developer
    string animals = textbox1.Text;
    string elephant = "слон";
    if(animals.IndexOf(elephant)>=0)
    {
          //исполнится код в брекетах, если слон есть в списке
    }


    Также можно использовать более сложный пример с помощью RegExp :
    int matchesCount=0;
    string pattern = @"слон";
    RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Compiled;
    string text = "жираф кот СлОн БеГеМот";
    MatchCollection matches;
    Regex optionRegex = new Regex(pattern, options);
    matches = optionRegex.Matches(text);
    for (int ctr = 1; ctr <= matches.Count; ctr++) matchesCount++;
    Ответ написан