• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    SIRLOON
    SIRLOON --- ---
    PELDA: ale to “y” si radeji zmen, nebo ti pancelka snizi znamku za upravu 😉
    PELDA
    PELDA --- ---
    EMBI:
    MORMEGIL: Diky obema za nasmerovani... vyreseno! Missing part byl ten cast z object na IEnumerable

    FYI tohle funguje (GetPropertyValue mam napsane jako Reflection podobne jako EMBI: )

    MORMEGIL
    MORMEGIL --- ---
    PELDA: List<T> není nijak variantní, takže bez dostupnosti toho typového parametru s tím nijak nepochodíš. Můžeš to přetypovat prostě na negenerický IList (protože List<T> implementuje i negenerický IList), takže s tím pak můžeš pracovat rozumně jako se seznamem objektů. Pokud by ten DataColumnProducer měl nějakého veřejně dostupného užitečného předka, dá se to taky přetypovat na IEnumerable<Předek> (protože IEnumerable je kovariantní). (Jestli nemá, tak samozřejmě můžeš na IEnumerable<object>, ale to nemá proti negenerickému IList žádnou výhodu, řekl bych.)
    EMBI
    EMBI --- ---
    PELDA: Muze byt treba takto?


    class Program
    {
        static void Main(string[] args)
        {
            MyClass m = new MyClass();
    
            PropertyInfo? prop = m.GetType().GetProperty("PrivateList", BindingFlags.Instance | BindingFlags.NonPublic);
    
            Assembly assembly = Assembly.GetExecutingAssembly();
            Type subType = assembly.GetTypes().First(t => t.FullName.EndsWith("PrivateSubClass"));
    
            object? obj = prop.GetValue(m);
            foreach (object item in (IEnumerable)obj)
            {
                object? x = subType.GetField("x", BindingFlags.Instance | BindingFlags.Public).GetValue(item);
                Console.WriteLine(x);
            }
        }
    }
    
    class MyClass
    {
        private List<PrivateSubClass> PrivateList { get; } = new List<PrivateSubClass>()
        {
            new PrivateSubClass() { x = 0 },
            new PrivateSubClass() { x = 1 },
        };
    
        private class PrivateSubClass
        {
            public int x;
        }
    }
    PELDA
    PELDA --- ---
    PELDA: abych to trochu zobecnil...

    Jak udelat List, kde T je type, ktery ziskam pomoci Reflection?

    Zkousel jsem neco jako

    Assembly design = Assembly.LoadFile(@"C:\Program Files (x86)\TIBCO\Spotfire\11.4.0\Binaries\Spotfire.Dxp.Data.dll");
    Type myColumnProducer = design.GetType("Spotfire.Dxp.Data.DataColumnProducer");

    ale potom List ... hazi " myColumnProducer is a variable but is used like a type...
    PELDA
    PELDA --- ---
    Ahoj ... potreboval bych poradit s Reflection a Non-public members... nejak jsem se zasekl
    (sorry predem za dlouhy post)

    Mam object "dataTable", ktery ma skrytou property AllProducersExcludingFrozenChildren.
    Takze pouziju Reflection:

    var myProducers = dataTable.GetType().GetProperty("AllProducersExcludingFrozenChildren", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dataTable, null);

    Jenze to, co dostanu je typu object {System.Collections.Generic.List}, takze nemuzu k items pristupovat pres myProducer[0] nebo nejak iterovat.

    Nabizi se to precastovat na System.Collections.Generic.List, coz by jit melo, jenze typ Spotfire.Dxp.Data.DataColumnProducer je zase Non-public. A jak udelat List z type, ktery nejak ziskam pomoci Reflection neumim, resp. mi nic nefungovalo... :(

    Celkove nemam s dynamickou praci s typy moc zkusenosti, tak snad se neptam uplne blbe.
    Kazdou radu vitam:)

    PJOTRIK
    PJOTRIK --- ---
    Mam tu kupon na 3mesicni licenci JetBrains dotUltimate, pokud byste nekdo mel zajem tak posta, ja to nevyuziju
    SAJAGI
    SAJAGI --- ---
    TOOMIX: F# opět
    TOOMIX
    TOOMIX --- ---
    The New Constructor Type Coming in C# 12 is Weird
    https://www.youtube.com/watch?v=hcCT5J-SKEA&t=288s


    BRAP242
    BRAP242 --- ---
    OTAVA: spatne (vicenasobne) instancovanej logger
    OTAVA
    OTAVA --- ---
    Ahoj,

    mam takovy problem - mam servisu, ktera ma nejaky endpointy a natahuje data z DB, naprosto standardni vec a na projektu jich mame cca 10. Strukrura vicemene stejna.

    Ted jsem si vsiml ze tahle konkretni servisa loguje kazdou hlasku dvakrat - pouzivame log4net. Kdyz to debuguju, vidim skutecne dve instance loggeru. ve startupu nevidim nic podezdreleho, logger se injectuje pres DI.

    Uz jste nekdy neco podobneho videli ?
    (google and stockoverflow nepomohly)

    Diky moc.
    HYENA
    HYENA --- ---
    TOOMIX: Ano, Treeview má event AfterSelect, ale to je event výběru. Potřeboval bych, aby se při přetažení scrollbaru posouval Treeview i DataGridView vedle.
    TOOMIX
    TOOMIX --- ---
    HYENA: ale má něco jako SelectedNodeChanged a podle toho by se to dalo nějak dopočítávat ne?
    HYENA
    HYENA --- ---
    Ahoj, neřešili jste někdy ve vb.net synchonizaci scroll Treeview s DataGridView (nebo něčím jiným...)? Treeview zdá se nemá event na scroll.
    TEKLAC
    TEKLAC --- ---
    Ahoj!
    Do naseho Pixelfield tymu hledáme posilu na pozici Unity dev. Pokud mate zájem nebo o někom víte prosím piste na gordeev@pixelfield.cz
    Unity developer | Pixelfield
    Unity developer | Pixelfield
    https://www.startupjobs.cz/nabidka/35435/unity-developer
    Predem se omlouvam spam
    TOOMIX
    TOOMIX --- ---
    MEMNON666
    MEMNON666 --- ---
    BONEFLUTE: rádo se stalo, uložím křišťálovou kouli zas na někdy :)
    BONEFLUTE
    BONEFLUTE --- ---
    MEMNON666: Skvělé! Díky moc! Pro tebe možná drobnost, ale mě to ohromě pomohlo!
    BONEFLUTE
    BONEFLUTE --- ---
    Zdravím!

    Poraďte mi prosím jak dosáhnout toho, aby se mi ve VS ukazovalo v bublině dokumentace k metodě.

    Tedy: když dám třeba "".Normalize(), tak se mi nad tím Normalize objeví bublina s "Returns a new string whose textual value is the same as this string, but whose..."
    Když dám nějakou svou metodu, která je ve stejném projektu, tak to funguje.
    Když dám nějakou metodu z knihovny, která je nalinkovaná jako nuget balíček, tak to tam není.

    Formát bych měl mít podle příručky.

    V čem by asi tak mohl být podraz? Netušíte?

    Předem díky.
    Kliknutím sem můžete změnit nastavení reklam