Что не так?
От: snaphold  
Дата: 12.06.19 08:40
Оценка:
на таком коде получаю System.NotImplementedException: 'The method or operation is not implemented.'
 async public void Parse()
        {
            CancellationToken token = new CancellationToken();
            var path = @"C:\repos\ConsoleApp7\ConsoleApp7\bin\test2.xml";

            var xmlTextReader = new XmlTextReader(path);
            var data = await XDocument.LoadAsync(xmlTextReader, LoadOptions.PreserveWhitespace, token);
        }


что не так с кодом?
Re: Что не так?
От: Danchik Украина  
Дата: 12.06.19 09:16
Оценка:
Здравствуйте, snaphold, Вы писали:

S>что не так с кодом?


Скорее всего в вашей версии фреймворка или .NET Core XDocument.LoadAsync не имплементирован.
Re[2]: Что не так?
От: snaphold  
Дата: 12.06.19 10:30
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, snaphold, Вы писали:


S>>что не так с кодом?


D>Скорее всего в вашей версии фреймворка или .NET Core XDocument.LoadAsync не имплементирован.


у меня .net core 2.1
пишут имплементирован.
куда копать?
Re: Что не так?
От: ksg71 Германия  
Дата: 12.06.19 11:21
Оценка: +1
Здравствуйте, snaphold, Вы писали:

S>на таком коде получаю System.NotImplementedException: 'The method or operation is not implemented.'

S>
S> async public void Parse()
S>        {
S>            CancellationToken token = new CancellationToken();
S>            var path = @"C:\repos\ConsoleApp7\ConsoleApp7\bin\test2.xml";

S>            var xmlTextReader = new XmlTextReader(path);
S>            var data = await XDocument.LoadAsync(xmlTextReader, LoadOptions.PreserveWhitespace, token);
S>        }
S>


S>что не так с кодом?


 var xmlTextReader = XmlReader.Create(path, new XmlReaderSettings { Async = true });
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re[3]: Что не так?
От: Danchik Украина  
Дата: 12.06.19 11:30
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Здравствуйте, Danchik, Вы писали:


D>>Здравствуйте, snaphold, Вы писали:


S>>>что не так с кодом?


D>>Скорее всего в вашей версии фреймворка или .NET Core XDocument.LoadAsync не имплементирован.


S>у меня .net core 2.1

S>пишут имплементирован.
S>куда копать?

Ну репродюснул я, по стеку то видно что XmlTextReader не имплементит ReadAsync.

Вот так должно работать

public async Task Parse()
{
    CancellationToken token = new CancellationToken();
    var path = @"C:\repos\ConsoleApp7\ConsoleApp7\bin\test2.xml";

    using (var xmlTextReader = XmlReader.Create(path, new XmlReaderSettings { Async = true }))
    {
        var data = await XDocument.LoadAsync(xmlTextReader, LoadOptions.PreserveWhitespace, token);
    }
}
Re[4]: Что не так?
От: snaphold  
Дата: 12.06.19 12:04
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, snaphold, Вы писали:


S>>Здравствуйте, Danchik, Вы писали:


D>>>Здравствуйте, snaphold, Вы писали:


S>>>>что не так с кодом?


D>>>Скорее всего в вашей версии фреймворка или .NET Core XDocument.LoadAsync не имплементирован.


S>>у меня .net core 2.1

S>>пишут имплементирован.
S>>куда копать?

D>Ну репродюснул я, по стеку то видно что XmlTextReader не имплементит ReadAsync.



а как и где ты увидел это?
Re[5]: Что не так?
От: Danchik Украина  
Дата: 12.06.19 12:11
Оценка:
Здравствуйте, snaphold, Вы писали:

D>>Ну репродюснул я, по стеку то видно что XmlTextReader не имплементит ReadAsync.


S>а как и где ты увидел это?


Посмотрел в детали Exception:

System.NotImplementedException
  HResult=0x80004001
  Message=The method or operation is not implemented.
  Source=System.Private.Xml
  StackTrace:
   at System.Xml.XmlReader.ReadAsync()
   at System.Xml.Linq.XDocument.<LoadAsyncInternal>d__25.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at TestLoadAsync.Program.<Main>d__0.MoveNext() in C:\Users\sdanyliv\source\repos\TestLoadAsync\TestLoadAsync\Program.cs:line 22
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at TestLoadAsync.Program.<Main>(String[] args)
Re[6]: Что не так?
От: snaphold  
Дата: 12.06.19 12:37
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, snaphold, Вы писали:


D>>>Ну репродюснул я, по стеку то видно что XmlTextReader не имплементит ReadAsync.


S>>а как и где ты увидел это?


D>Посмотрел в детали Exception:


а это нормально, что в релизе фреймворка есть функция которая кидает такое?
зачем ее включать?
можно ли как-то самому написать реализацию этой функции ReadAsync?
Re[7]: Что не так?
От: Danchik Украина  
Дата: 12.06.19 13:04
Оценка:
Здравствуйте, snaphold, Вы писали:

S>а это нормально, что в релизе фреймворка есть функция которая кидает такое?

S>зачем ее включать?
S>можно ли как-то самому написать реализацию этой функции ReadAsync?

Во первых зачем? Вам же написали решение.
Скорее всего для .NET Core она не реализована, а это не .NET Framework, а либу то тянуть в референсах надо.
Да вот же, с рекомендацией использовать XmlReader: https://docs.microsoft.com/ru-ru/dotnet/api/system.xml.xmltextreader?view=netframework-4.8
Re[8]: Что не так?
От: snaphold  
Дата: 12.06.19 14:19
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, snaphold, Вы писали:


S>>а это нормально, что в релизе фреймворка есть функция которая кидает такое?

S>>зачем ее включать?
S>>можно ли как-то самому написать реализацию этой функции ReadAsync?

D>Во первых зачем? Вам же написали решение.


просто интересно возможно ли это. Думал может с помощью рослина можно както

D>Скорее всего для .NET Core она не реализована, а это не .NET Framework, а либу то тянуть в референсах надо.


вот это не понял. можно подробнее. в мсдн написано про данную ф-ю в данном классе что версия с 2.1 поддерживается.
для коре и обычного фреймворка ведь 2 разные длл и 2 реализации, верно?

D>а либу то тянуть в референсах надо.


чем бы это мне помогло?

D>Да вот же, с рекомендацией использовать XmlReader: https://docs.microsoft.com/ru-ru/dotnet/api/system.xml.xmltextreader?view=netframework-4.8


а почему тогда они до сих пор не исключили этот класс из последних версий фреймоврка если не советуют?
Re[9]: Что не так?
От: ksg71 Германия  
Дата: 12.06.19 14:45
Оценка: 4 (1)
Здравствуйте, snaphold, Вы писали:

S>Здравствуйте, Danchik, Вы писали:


S>а почему тогда они до сих пор не исключили этот класс из последних версий фреймоврка если не советуют?


потому что этих ридеров целый зоопарк, вполне возможно что этот класс подходит для ряда задач лучше,
чтобы проще было выбирать ридер сделали фабричный метод Create который отдаст нужную реализацию.
емнип раньше не было task — based методов в XmlReader и их добавили позже, а имплементировать во всех наследниках
оказалось сложно или невозможно или...
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Отредактировано 12.06.2019 14:48 ksg71 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.