Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Hozzászólások

(#9201) alratar


alratar
addikt

Sziasztok.
Ismerkedem az MVVM-mel.

Létrehoztam egy gombot, aminek annyi lenne a feladata, hogy egy TextBlock tartalmát törölje.
Addig eljutottam, hogy a Command kell a Click event helyett, de az ICommad interfész implementálásánál elvérzek.
Sokan ajánlottá a Caliburn Micro-t, de ha nem muszáj nem használnék külső cuccokat. :)

Tudnátok segíteni nekem?

10 féle ember van: aki ismeri a bináris számrendszert, és aki nem

(#9202) Alexios válasza alratar (#9201) üzenetére


Alexios
veterán

[link] Itt egy példa. MVVMLight is jó, ha valami nagyon lightweight libraryt akarsz amiben ezek már implementálva vannak.

(#9203) bandi0000


bandi0000
nagyúr

Lenne egy kis gondom EF Core-ban

Van 2 tábla, 1-1 kapcsolat van köztük, ApplicationUsers és ForgotPasswords

ForgotPasswords táblába vettem fel tulajdonságként az ApplicationUser-t

Elmentek egy rekordot ForgotPassword táblába, látszik is az adatbázisba az ApplicationUser kulcsa, viszont ha lekérdezném a usert-t, akkor null-t kapok

var user = forgotPasswordRepository.getToken(model.ForgotPasswordToken).ApplicationUser;

Olvasgattam és olyasmit írnak, hogy bekéne Include-al dobni az ApplicationUser táblát is, de nincs Include-om, vagy legalább is nem ajánlja fel

Ezt hogy lehetne megoldani?

Xbox One: bandymnc

(#9204) Alexios válasza bandi0000 (#9203) üzenetére


Alexios
veterán

A repositoryban mikor a táblának a lekérdezését írod, ott kell includeolni. Valami hasonló módon: db.ForgotPasswords.Include(i=> i.ApplicationUsers)
Aztán ezt szűrheted a szokásos módon tovább, vagy amit eddig csináltál a lekérdezésnél.

[ Szerkesztve ]

(#9205) bandi0000 válasza Alexios (#9204) üzenetére


bandi0000
nagyúr

Igen, csak pont ezt az Include-ot nem ajánlja fel

Úhh de hülye vagyok, csak importálni kellett volna :D :R

[ Szerkesztve ]

Xbox One: bandymnc

(#9206) AnyamBorogas


AnyamBorogas
csendes tag

hello!

Szeretnék egy iterációt végigcsinálni x darab textBox-on, úgy, hogy pl textBox1-ben van egy string, az eltűnik, és megjelenik textBox2-ben majd ez így tovább x-ig, közte mondjuk 1s sleep-el. Illetve ugyan ez visszafelé pl buttonClick-re.
Erre valaki tud help-et, sajna Google nem segített sokat. :F

(#9207) friky81


friky81
csendes tag

Sziasztok
Volna egy kérésem
Egy olyan kódot szeretnék írni ami a windows alatt tetszőleges darabot kimásol az asztal képernyőről bármi is legyen a képernyőn azt elmenti egy kép formátumba vagy hasonló
Lényegében a szövegfelolvasó progik is valahogyan hozzáférnek a képernyő képéhez.
Nekem is valami ilyesmi kéne
Valaki tudna segíte egy rövid koddal ?

(#9208) sztanozs válasza friky81 (#9207) üzenetére


sztanozs
veterán

A szövegolvasók a kurzor (vagy egér) alatti legfelső kontrollt keresik, amiben van szöveg. Általában nem ORC módon olvasnak fel, hanem konkrétan hozzáférnek a szöveghez.

Amit kérdeztél: [link]

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9209) friky81 válasza sztanozs (#9208) üzenetére


friky81
csendes tag

a lényeg hogy én nem feltétlenül szöveget akarok kinyerrni hanem maga a képernyöre vetitett képből akarok másolni
Elméletileg a kivetitett kép a memoriából kerül a képernyöre onnan kéne kiolvasnom de úgy hogy ne befolyásolja a kivetitést nem akarom felülírni a memoriarészt csak olvasni
Kezdetne elég lenne némi ifo milyen formában van a kép a memoriában esetleg memoriacim ... valami fügvény esetleg ha van rá ....

(#9210) tboy93 válasza friky81 (#9209) üzenetére


tboy93
nagyúr

O.o

(#9211) martonx válasza friky81 (#9209) üzenetére


martonx
veterán

(#9212) Jokerpoker


Jokerpoker
csendes újonc

Sziasztok!
Írtam egy programot, ami lekéri a Szerencsejáték Zrt weboldalnak a forráskódját.
Az lenne a kérdésem, hogy hogyan tudom ebből a hosszú forráskódból kiszedni azt az öt számot, amik a múltheti nyerőszámok?

(#9213) kispx válasza Jokerpoker (#9212) üzenetére


kispx
addikt

Egyszerűbb ha a CSV-t töltöd le.

(#9214) Keem1 válasza Jokerpoker (#9212) üzenetére


Keem1
addikt

Valóban egyszerűbb a CSV, de ha nem riadsz vissza a kihívásoktól, akkor egy HTML parsert javasolnék, ahol xpath alapján kéred le az adatot. Akár B opciónak, házi feladatnak a CSV feldolgozás mellett ezt is kipróbálhatod, én így gyűjtöm a koronavírus infót a hivatalos oldalról már 2 és fél hónapja. ;) Plusz parse-olok időjárási oldalakat is, már 4 évre visszamenő, óránkénti bontású saját statisztikám van. Az évek során többször variáltam az adatforrásokat, mivel voltak olyanok, ahonnan kitiltottak a gyakori lekérés miatt.

Én a HtmlAgilityPack nevűt használom, ez még a HTML lekérést is megoldja, https oldalról is, ráadásul én egy listából variálom a useragenteket (van köztük valós Chrome, Safari, IE, Firefox is), hogy ne tűnjön robotnak a program és ne tiltsák ki az oldalakról :DDD

[ Szerkesztve ]

(#9215) martonx válasza kispx (#9213) üzenetére


martonx
veterán

:D +1

Én kérek elnézést!

(#9216) Jokerpoker válasza Keem1 (#9214) üzenetére


Jokerpoker
csendes újonc

Köszönöm a választ!
Megpróbálom ezekkel! :)

(#9217) joysefke


joysefke
veterán
LOGOUT blog

Azure DevOps Pipeline vs Azure DevTest Lab custom VM-ek indítása leállítása pipelineból

Azure DevOpsban van egy projektem, ehhez tartozik egy Build Pipeline (YAML-formátumban). A build pipeline több stage-ből áll. Az első stage-ban egy standard Microsoft VM agent buildeli a kódot stb.

A következő stage már custom agenteket használ (funkcionális tesztek), ezeket a custom agenteket Azure DevTest Lab-ben hostolom és a DevOps-ban egy "Environment"-be vannak beregisztrálva. Ezeket a DevTest Lab-ben futó custom agenteket aztán a pipeleneból Deployment jobokkal managelem, osztok rájuk taskokat. (ez így szépen működik)

A kérdés az az, hogy hogyan tudnám a VM-eket a pipelineból powershell taskkal indítani leállítani.? Most nem nagyon érek rá kísérletezgetni, de tök jó lenne, ha ez is menne.

Gondolom maga az indítás leállítás valami Get-AzVM -Name *akármi* | Start-AzVM szerű dolog lesz, de az autoritzáció része nekem nem tiszta. Szóval csinált már valaki ilyet?

[ Szerkesztve ]

(#9218) Dinter


Dinter
addikt

Sziasztok!

UWP-ben állítanám be az ablak szélességet, minndehol ezt az egy fajta megoldást írják:

ApplicationView.PreferredLaunchViewSize = new Size(531, 900);
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
Hiába állítom be, 20-ból egyszer működik :W Miért?

[ Szerkesztve ]

(#9219) DrojDtroll


DrojDtroll
addikt

.net core 3-as web api-s projektben miért nem tudom használni a Bitmap class-t? Amikor bereferenciálom a system.drawing.dll-t a következőt kapom:

Failed to create the wrapper assembly for type library "{d37e2a3e-8545-3a39-9f4f-31827c9124ab}". Type library 'System_Drawing' was exported from a CLR assembly and cannot be re-imported as a CLR assembly.

(#9220) dqdb válasza DrojDtroll (#9219) üzenetére


dqdb
nagyúr

Ne a rendszerben található, .NET Frameworkhöz tartozó dll-t add hozzá referenciaként, hanem ezt a NuGet csomagot.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#9221) DrojDtroll válasza dqdb (#9220) üzenetére


DrojDtroll
addikt

Köszönöm :R

(#9222) Jokerpoker


Jokerpoker
csendes újonc

Sziasztok!
Írtam egy programot, ami kiírja egy .txt fájl hosszát. A program "OutOfMemory" hibakódot dob ki, de csak 2GB ramot terhel, miközben a gépemben 16GB memória van.
Hogyan lehet ezt a "korlátozást" megszüntetni?

A program kódja a következő:
string path = @"C:\test.txt";
            StreamReader sr = new StreamReader(path);
            Console.WriteLine("Karakterek száma a szövegben: {0}",sr.ReadToEnd().Length);

Köszönöm a válaszokat előre is!

(#9223) dqdb válasza Jokerpoker (#9222) üzenetére


dqdb
nagyúr

Project Properties > Build > Prefer 32-bit opció kikapcsolása, hogy lehetőleg 64 bites változat induljon el 64 bites OS-en a programból.

Azt azért megjegyezném, ha előre lehet tudni, hogy hatalmas fájlokkal lesz dolga az embernek, akkor feldolgozás megírásakor a legutolsó utáni dolog után jön csak pár lépéssel az a megoldás, hogy beolvassa a memóriába az egészet.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#9224) joysefke válasza Jokerpoker (#9222) üzenetére


joysefke
veterán
LOGOUT blog

Ha a hosszra vagy kiváncsi (ami kódolástól függően nem feltétlenül egyenlő a karakterek számával)
https://docs.microsoft.com/en-us/dotnet/api/system.io.fileinfo.length?view=netcore-3.1

[ Szerkesztve ]

(#9225) DrojDtroll


DrojDtroll
addikt

Sziasztok!

Egy kis WPF WTF :F

Van egy Image control-om aminek a HorizontalAlignment-jét próbálom beállítani. Left és Right értéken tökéletes, de Centeren nem esik középre.

https://www.youtube.com/watch?v=QZgKbiGMaQg&feature=youtu.be

https://pastebin.com/vM2jBGx3

Mi lehet a megoldás?

(#9226) DrojDtroll válasza DrojDtroll (#9225) üzenetére


DrojDtroll
addikt

A HorizontalAlignment property nélkül tökéletes középen van.

MÁS:
Van itt olyan forumtárs aki annó fejlesztett windows 8-as vagy 8.1-es telefonra?

(#9227) Alexios válasza DrojDtroll (#9226) üzenetére


Alexios
veterán

Én fejlesztettem még rá régen, bár túl sok minden nem rémlik már belőle :D

(#9228) DrojDtroll válasza Alexios (#9227) üzenetére


DrojDtroll
addikt

Olyannal talákoztál hogy a Frame.Navigation egyszerűen nem müködik?

Nem tudok új lapra váltani. A Frame NavigationFailed eventje nem aktiválódik. A Frame.Navigation false-al tér vissza. Kivétel nem dobodik.

(#9229) OldBoyDev


OldBoyDev
újonc

Szervusztok!

A problémám: van egy formom rajta egy adatrács feltöltve adatokkal, innen meghívok egy másik formot fx.Show(); itt teszek dolgokat, majd visszatérek az első formba. És azt szeretném, hogy frissíteni tudjam az első formon lévő tableadaptert és ezáltal az adatrácsot is.
Bocs, ha körülményesen fogalmaztam. A környezet: Winforms és C#.
Köszönöm!

(#9230) OldBoyDev válasza OldBoyDev (#9229) üzenetére


OldBoyDev
újonc

Közben sikerült:

using (dataFormSzla fr = new dataFormSzla())
{
   if (fr.ShowDialog(this) == DialogResult.OK)
  {
      this.mbTableAdapter.Fill(.....);
      this.grid.Refresh();
  }
}

(#9231) joysefke


joysefke
veterán
LOGOUT blog

(#9232) martonx válasza joysefke (#9231) üzenetére


martonx
veterán

Miért lenne halott a topik?

Én kérek elnézést!

(#9233) sztanozs válasza martonx (#9232) üzenetére


sztanozs
veterán

Jaja, nem halott, csak már mindenki tud mindent :DDD

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9234) fatal` válasza sztanozs (#9233) üzenetére


fatal`
titán

Vagy mindenki dolgozik :D

(#9235) martonx válasza sztanozs (#9233) üzenetére


martonx
veterán

Vagy olyan ősi winforms kérdések jönnek elő, amikkel legutóbb 15 évvel ezelőtt foglalkoztam, és nem gondolnám, hogy 2020 - ban reagálni kellene elmaradott problémákra.

Én kérek elnézést!

(#9236) petyus_


petyus_
senior tag

Sziasztok!

Blazorrel foglalkozik itt valaki? Egy angular app-ot kezdtem el átírni, és előjött egy hiba, amit sehogy sem tudok megoldani.

Van egy formom, a model-validationt attribute-okkal oldom meg. Írtam egy saját attribute-ot, RequiredIf, megadhatod benne, hogy akkor legyen required a field, ha egy másik property-nek az értéke egyezik azzal, ami megadsz.

pl:
[RequiredIf(nameof(Foo), new[] { "Bar"}, ErrorMessage = "Category must be set.")]
public int? CategoryId { get; set; }

Itt a másik property a Foo, ha Bar az értéke, akkor a CategoryId nem lehet null vagy 0.

Ezt a modellt használom a Blazor formban, és a validation kicsit furán működik. Foo-t beállítottam Bar-nak. Raktam a formba egy ValidationSummary-t is, és az adott field-hez tartozó ValidationMessage-t is.
Ha nyomok egy submit-ot, akkor a ValidationSummary-ben megjelenik az error, de az input mellett nem.
Ha megváltoztatom az ehhez a fieldhez tartozó inputot, akkor megjelenik a ValidationSummary-ben, így ott kétszer szerepel az error, közben megjelenik a ValidationMessage is, és az input is piros lesz.
Ha most megint nyomok egy submitot, akkor a summary-ből az egyik error eltűnik, a field mellet message is, és az input zöldre vált.

Csatolok képet, van ott egy Amount field is, az sima int (nem nullable), és egy Range[(1, int.Max)] van rajta, az teljesen jól működik.

Nyomok egy submitot:

Átírom a Category értékét:

Megint nyomok egy submitot:

Valakinek esetleg van ötlete?

[ Szerkesztve ]

(#9237) martonx válasza petyus_ (#9236) üzenetére


martonx
veterán

Régóta várom, hogy szembe jöjjön velem egy Blazoros projekt. Szóval sajnos még nem próbáltam soha :(

Én kérek elnézést!

(#9238) petyus_


petyus_
senior tag

Közben sikerült rájönnöm, az attribute-ban amikor visszaadtam a ValidationResult-ot, nem adtam át a memberName-t.
Ezért amikor az adott field-et módosítottam, odarakta az errort, mert tudta, hogy azzal van a gond, viszont amikor submit-ra nyomtam, akkor nem tudta, hogy melyik fieldhez tartozik az error.

(#9239) coco2


coco2
őstag

Sziasztok!

Segítséget szeretnék kérni a task pool cancel mechanizmus megértéséhez. Az msdn oldalak elolvasása után még mindig vakarom a buksit, hogy akkor ez most hogyan is. Konkrétan a menet közben élezhető cancel mechanizmus az, amit nem találok.

A task-okhoz van egy olyan, hogy [cancel token]. Kicsi szépséghibaként a konstruktora azt mondja, hogy vagy false-al töltöm, amikor sem nem ad cancel parancsot, nem nem képes arra kapcsolni, vagy true-val töltöm, és akkor meg alapból cancel parancsot ad, amit átmenetileg kikapcsolni sem tudok. Példa kódokból is csak mellébeszélőseket találtam.

Fésülte már ki valaki azt a gubancot egyenesre?

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#9240) joysefke válasza coco2 (#9239) üzenetére


joysefke
veterán
LOGOUT blog

A TaskFactory-val van a problémád vagy magával a CancellationTokenSource => CancellationToken mechanizmussal?

A cts -token egy távirányítós bomba. A bomba a Token a távirányító pedig a CancellationTokenSource. a kliens kódnál a távirányító (CTS) és a távirányítóhoz tartozó bombát átadja a hívott metódusnak a Token formájában. Te mindig a CTS-t hozod létre konstruktorral, a Tokent a CTS propertijeként kapod meg.

Amikor megunod a várakozást, robbantod a bombát a távirányítóval.

A példakódot lefuttattam, ott ha AggregateException jött jelzi azt, hogy a CTS-en meg lett hívva a cancel.

[ Szerkesztve ]

(#9241) coco2 válasza joysefke (#9240) üzenetére


coco2
őstag

Elkerülendő a további félreértéseket, külön idemásolom a hivatkozott kódrészletet, mert az egész akkora égbekiáltó hazugság, hogy ihaj.

for (int ctr = 1; ctr <= 10; ctr++) {
  lock (lockObj) { value = rnd.Next(0,101); }
  if (value == 0) { 
    source.Cancel();
    Console.WriteLine("Cancelling at task {0}", iteration);
    break; }   
    values[ctr-1] = value; }

Ugyan had tegyem fel a költői kérdést, hol van annak a task kilépésnek bármi köze a cancel token változásához ?

(A teljes kód példa az előző hsz-ben a linken található.)

[ Szerkesztve ]

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#9242) joysefke válasza coco2 (#9241) üzenetére


joysefke
veterán
LOGOUT blog

A TaskFactory-nak és a Continuation-oknak is át van adva a token.

(#9243) coco2 válasza joysefke (#9242) üzenetére


coco2
őstag

Annak az a token lett átadva, ami source-on akkor volt, amikor a task elindult, és ami le lett cserélve. A task factory nem a source referenciáját kapta meg.

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#9244) joysefke válasza coco2 (#9243) üzenetére


joysefke
veterán
LOGOUT blog

Nem értem hogy mi a probléma meg milyen token referenciáról beszélsz.

A token egy struct, ami tartalmazza az őt létrehozó CTS referenciáját. Te ezt nem látod, mivel a token structon a cts-re mutató referencia nem publikus. (pont ez a pattern lényege, hogy ne lehessen össze vissza cancellelni csupán a cts birtokában)

https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationToken.cs 35-ik sor...

A cancel pedig kétféle módon propagálódik:
1, Te manuálisan a saját magad függvényében ellenőrzöd, hogy történt-e cancel:
bool token.IsCancellationRequested vagy
void token.ThrowIfCancellationRequested()

2, Valamelyik framework API akinek Task létrehozásakor átadtad a tokent ellenőrzi a token állapotát és saját maga rakja az általa felügyelt Task állapotát Cancelled-re. A TaskFactory gondolom egy ilyen valami. (nem ismerem a TaskFactory-t)

[ Szerkesztve ]

(#9245) coco2


coco2
őstag

[System.Net.Sockets.TcpListener] és [System.Net.Sockets.TcpClient] kérdés.

Arra lenne szükségem, hogy az egyszer elfogadott kapcsolatok biztosan stabilak maradjanak akkor is, ha a tcp listenert leállítom, és később újraindítom (támadások elleni védekezési lépések).

Azt persze tudom tesztelni, hogy listener .Stop() után az adatáram stabil marad, de az ugye valamelyik dotnet verzió esetén éppen úgy van, és nem elvi szintű ígéret, hogy később is úgy marad.

Próbáltam elvi szintű dokumentációkat keresni, mi is a szitu, de eddig nem találtam.

Ha irány vissza a kályhához, akkor van a nyers hálózati csomag, ip header + tcp header, és abban benne van a szerver oldali port is. Még ha egy megnyitott socket létezik is, az OS elvileg érzékelheti a listen port lezárását, és eldobhatja a beérkező csomagot azon az alapon, hogy bocsi, de a címzett porton jelenleg nincsen jegyezve semmi. Van arra szabványi előírás, ami egészen biztosan megtiltja az OS-nek, hogy olyat tegyen?

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#9246) joysefke


joysefke
veterán
LOGOUT blog

El vagyok veszve az ASP verziók és szuboptimális lehetőségek között, segítség kéne

Egy új ASP Web API projektet kell írni (REST, json). A saját már létező komponensek amiket kikerülhetetlenül használni kell, targetje Net472. Jó pár ezek közül nem konvertálható egyszerűen netstandard2.0-ra, és ezen adott idő alatt nem tudunk segíteni, ez már eldölt.

Az új az ASP web-projekt mellé készülő library komponensek targetje Standard2.0 lesz, ez a stratégiai irány. A régi komponensek is előbb vagy utóbb átvándorolnak standard2.0-ra, de ez nem most lesz.

Az ötlet az, hogy használunk "valamilyen" .Net Framework 4.7.2+ -en futó ASP verziót, használjuk a meglévő saját frameworkos librarykat az újakat pedig standard2.0-ban gyártjuk. Aztán amikor alkalom adódik rá, az ASP projektet is migráljuk/lecseréljük a majdani legfrissebb ASP Net Core-ra.

Az ASP projekt alá jelenleg olyan kevés kód kerülne ami csak lehetséges, minden ami szükséges standard2.0-ás libraryba vándorolna, lehetőleg úgy hogy majd később asp net core alól változatlanul fel tudjuk használni.

=====

És akkor most tanácstalan vagyok, hogy nekem valami régebbi ASP NET Core-t kell nézni (ezek ha minden igaz 2.2-ig bezárólag tudtak futni Framework runtimen is, de erről csak olvastam) vagy valami legújabb ASP.NET 4.x -et Web API 2-vel??

Az ASP Net Core 2.x-ek ha minden igaz már end of life...

VS19 támogatásnak eléggé örülnék.

=====

Nézegettem a docs.mscom oldalt, de egyszerűen nem találtam jó táblázatokat...

[ Szerkesztve ]

(#9247) sztanozs válasza coco2 (#9245) üzenetére


sztanozs
veterán

Ha "rendesen" leállítod, akkor a szerver vagy a kliens dob a túloldalra egy FIN csomagot. Ezzel értesíti a túloldalt, hogy a csatornát be kell zárni. Sztenderd módon a túloldalnak válaszolni kell egy ACK csomaggal és küldenie szintén vissza egy FIN csomagot amit a kezdeményező oldal lenyugtáz egy ACK-val. Tehát, ha normál módon (Listener.Close vagy Client.Close-zal) zársz le egy kapcsolatot, akkor a túloldal értesülni fog róla, hogy bezárod, így nem tartja nyitva a csatornát.
Alapból a TCP protokoplban nincs keepalive ping, szóval, ha kézzel vezérled a TCP kapcsolatot, akkor simná le tudod lőni a listener-t és újra felhúzni, feltéve, ha vissza tudod állítani a TCP stack-et a lezárást megelőző állapotba (tehát tudni fogod, milyen porton kivel kommunikál).

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#9248) martonx válasza joysefke (#9246) üzenetére


martonx
veterán

Hát én a helyedben Asp.Net Core 2.1-el állnék neki, ha már mindenképpen cél az ősi .Net Framework 4.7.2
Ugyanakkor nem értem, hogy miért erőlteted a netstandard2.0-át. .Net 4.7.2 netstandard 1.x-ig jó, én a meglévő komponensek esetében megelégednék netstandard 1.x-el, amit viszont zokszó nélkül tud használni a .Net Core 3.1 is.

Én kérek elnézést!

(#9249) joysefke válasza martonx (#9248) üzenetére


joysefke
veterán
LOGOUT blog

Hát én a helyedben Asp.Net Core 2.1-el állnék neki

Végül az lesz.

Ugyanakkor nem értem, hogy miért erőlteted a netstandard2.0-át. .Net 4.7.2 netstandard 1.x-ig jó, én a meglévő komponensek esetében megelégednék netstandard 1.x-el, amit viszont zokszó nélkül tud használni a .Net Core 3.1 is.

A netstandard2.0-t a Core 3.1 és a net472 is ,egvalósítja. Semmit nem nyernénk, ha 2.0 alatti standardot próbálnánk targetelni, csak saját dolgunkat nehezítenénk meg.

A konvertálás úgy fog zajlani, hogy projektről projektre (levelekkel kezdve amelyeknek nincs dependenciája másik saját prokjekt felé) egyenként át lesz állítva a csproj formátum modernre (SDK style és package reference) a <TargetFramework> property pedig net472-től netstandard2.0-ra. Mivel a netstandard2.0 API szűkebb API mint a net472 ezért lesznek olyan hívások amit ki kell szervezni vagy ki kell vágni vagy helyettesíteni kell mással, mert nincsen standardes megfelelője. Minnél alacsonyabb standardet próbálnánk targetelni, annál nehezebb dolgunk lenne, mert annál több frameworkos API-nak nem lenne standarden megfelelője. Így is nehéz dolga lesz annak aki csinálni fogja, már volt egy nekifutás...

A saját új class library projekteknél pedig azért nincsen értelme netstandard2.0 alá targetelni, mert az összes futtatókörnyezet ami képben van (jelenleg a net472 és később meg valami core-latest) megvalósítja a standard2.0-t.

[ Szerkesztve ]

(#9250) zsolti_20


zsolti_20
senior tag

Sziasztok! Írtam egy egyszerű console appot ami kitudja olvasni a bizonyos cella értékét excel fileból, de a problémám az, ha megváltoztatom, az értéket a programom a régit olvassa. Gondolom előre feltölti a memóriába az excel filet és abból dolgozik, így csak akkor lesz olvasható számára a változás ha az excel file mentésre kerül és újból lefuttatom a file megnyitás részét a kódnak.
A problémám az, hogy ez elég időigényesnek tűnik, mert másodpercenként legalább 2 értékváltozást kikellene olvasnia.

A kérdésem az, hogy lehetséges úgy megoldani hogy mint cserélem az értéket a cellában úgy a programom is felismerje és kitudja olvasni? :R

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            string path = "mappa+filenév";
            Application excel = new Application();
            Workbook wb = excel.Workbooks.Open(path);
            Worksheet excelSheet = wb.ActiveSheet;
            while (i < 5)
            {
                Console.WriteLine(i);
                string test = excelSheet.Cells[1, 1].Value.ToString();
                Console.WriteLine(test);
            }
            wb.Close();

            //Read the first cell

        }
    }
}

Copyright © 2000-2024 PROHARDVER Informatikai Kft.