Comments (25)
Подозреваю, потому что я захардкодил свой filepath для сохранения ключа?)
from nsudotnet.
А, ну и еще из-за проверки на наличие outputfile, которого может и не быть
from nsudotnet.
Нет, ответ вот вообще ни разу не в кассу. Копайте глубже.
from nsudotnet.
а, из-за того, что есть и using и close?
from nsudotnet.
Опять нет
from nsudotnet.
задиспозил ICryptotransform, и всякие Des, aes и тд.
from nsudotnet.
И снова нет.
from nsudotnet.
а не сами ли классы encryptor и decryptor нужно диспозить? ведь мы их только раз используем.
from nsudotnet.
Слушайте, ну вы хоть почитайте что такое ObjectDisposedException
from nsudotnet.
Исправил, посмотрите, пожалуйста.
from nsudotnet.
Слушайте, от вас не требовалось исправлять. От вас требовалось сказать что в этом коде может привести к ObjectDisposedException
from nsudotnet.
Даже не что может к нему привести, а изучить что такое ObjectDisposedException и найти конструкцию в вашем коде, которая очень похожа на приводящую к нему.
from nsudotnet.
скорее всего там, где я в первом юзинге проверял тип кодирования.Ну а вообще этот эксепшн выбрасывается тогда, когда мы хотим обратиться к удаленному экземпляру объекта, который является IDisposible.
from nsudotnet.
либо когда в using вызывал close
from nsudotnet.
Мда. Вы самого очевидного не видите.
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) {
des.Key = Key;
des.IV = IV;
decryptor = des.CreateDecryptor(des.Key, des.IV);
}
Сущность, породившую Decryptor вы убили, а сам декриптор продолжаете использовать как ни в чем не бывало. Эта ситуация обычно ведет к возникновению ObjectDisposedException, но в данном случае вам чертовски везет в силу особенностей реализации криптопровайдеров в Windows. В случае если вы такую фигню будете писать например, в DirectShow, то будете долго втыкать что пошло не так.
from nsudotnet.
а, понял, спасибо
from nsudotnet.
исправил
from nsudotnet.
И что вы исправили? Не, вы по ходу дела не въехали в то, что я написал.
from nsudotnet.
Исправил cryptoserviceprovider
from nsudotnet.
Я не понял, а сам CSP чтоли диспозить не надо? Сам умрет когда-нибудь?
from nsudotnet.
исправил.
from nsudotnet.
Слушайте, вы прикалываетесь или как? Половина вариантов в свитчах старая, половина - новая. .Dispose выдывается явно, без try-finally. Вы чушь какую-то поправили. Переделайте нормально.
from nsudotnet.
Понял, почему там была критическая секция, сделал нормально - добавил в using.
from nsudotnet.
Во-первых именование.
Во-вторых, у вас опять textreader через .Close используется.
from nsudotnet.
исправил именование, textreader занес в using
from nsudotnet.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nsudotnet.