Att man inte får använda sig av reflection verkar vara "trendigt" bland webbhotell.
Läser man på div. hotells specar på vad man får/inte får så kan man lätt tro att de bara kopierat varandras texter. För vissa hotell har exakt samma punktlista! :l
Men vad är "farligt" med reflection egentligen eftersom hotellen inte tillåter det?
Åja så farligt är det inte med reflection. Det går att använda reflection konstant utan att sänka ett webbhotell.
Webbhotell som skriver att man inte får använda reflection är inte seriösa eftersom de inte vill uppgradera hårdvaran eller inte har kontroll över den och om du ser ett hotell som skriver så ska du fundera på att byta!
Webbhotell som skriver att man inte får använda reflection är inte seriösa eftersom de inte vill uppgradera hårdvaran eller inte har kontroll över den och om du ser ett hotell som skriver så ska du fundera på att byta!
På vilket vis då? Är det processorkrävande eller är det ramminnet som blir fullt?
Och jag har för mig att man kan ställa hur mycket resurser en viss iis-instans får nyttja och då borde det inte bli ett problem!?
Det känns som det måste vara nått mer kruks med reflections.
Kan man med reflections komma åt att läsa metadata eller dyligt ur filer som man inte har behörighet till? Alltså filer utanför sin webbrot.
Nu kom inte allting jag skrev med då jag startade om datorn men det jag skulle tillägga är att det är med reflection som det är med allt annat i kodväg. Det spelar ingen roll så länge det används rätt men felkodat kan det ställa till med problem.
Skulle gissa att det är för att undvika okontrollerad exekvering. Använder du reflection kan du teoretiskt låta en användare diktera vilka metoder som ska anropas. Tycker spontant att det är lite udda, med tanke på att resten av permissionsettet begränsar ganska duktigt skadan man kan åstadkomma då, men det finns säkert en god anledning.
Refelction is the mechanism of discovering class information solely at run time.Wondering where it would be useful? Imagine,you are in visual studio IDE (Integrated devolopment environment) and as you type "object." you would see all the methods,properties and events associated with that object.An other example would be an Object browser.The code attached here,loads all assemblies and displays each class,its contructors, methods, properties and events in tree view.The form also hase a command botton (labeled More Reflection) in whose click event I create an object of MyClass1 class based on the name of the class and invoke its methods during run time.Here is an explanation of the code with information on various classes and methods used.
I have called the name space MyReflection.Then I have declared MyClass1 and MyClass2 which are used in the click event of More reflection Button.I will talk about these classes when I come to the click event of this button.Next,I have called my form as TestReflection and is inherited from System.Winforms.Form.Most of the assemblies are found in D:\\WINNT\\Microsoft.NET\\Framework\\v1.0.2204\\.If this is not the path in your computer change it to appropriate path on your computer.I have stored all the paths of the assemblies in an array called arAssemblyPath.I have used System.Winforms.dll and System.dll and commented the rest, to speed up loading and unloading of application.I have declared an array of Types ,arOfTypes to store all the s from an assembly.I have a for loop that loads each assembly and gets its types.To do this I had to use Assembly class in System.Reflection name space.Let us talk a little bit about this class before we move on.
Nej inte riktigt... med hjälp av reflection kan man skapa "anonyma" metoder som tar emot basklassen som parameter.
Det är stort! Riktigt stort och definitivt något man vill kunna använda sig av. Du kan mha reflection skapa modulbaserade sajter och program och låta reflection ladda rätt moduler åt den inloggade användaren "conditionally".
Du kan också i runtime låta reflection söka rätt på det du letar efter.
Däremot har jag svårt att se några direkta tillämpningar. Varför skulle man inte känna till vilka metoder/properties som finns på ett objekt när man skriver sin kod?
I runtime kan du se t.ex se vilka metoder en klass har. Så användbart är det väl egentligen inte, som det är nu, i framtiden kanske det blir bättre. Säg att du på en klass "användare" har en metod "namn". Men om inte en specifik användare inte har något namn, då borde ju kanske inte den metoden "namn" existera.
Jag tycker mest reflection känns som en gratisprodukt man fått då man inte använder c++ stil att anropa t.ex metoder. I en klass i c++ som har några olika metoder så har man (vad jag har förstått) en lista med olika funktionspekare till de olika metoderna. Typ:
1. Metod1
2. Metod2
3. Metod3
Sen om du anropar en funktion så kompileras den positionen som metoden har in i koden. I C#/Java så anropar man med hjälp av namnet på metoden och inte dess plats i listan.
I C#/Java så anropar man med hjälp av namnet på metoden och inte dess plats i listan.
Njae, vid direkta anrop av metoder etc sker anropen mer i stil med hur de funkar i C++, både i Java och C#, det är därför direkta anrop är så larvigt mycket snabbare än reflection.
Tillfällen då reflection kan vara kraftfullt är vid skapande av applikationer som man skall kunna implemmentera plugins till :).
Applikationen ifråga har ett interface som den kräver att plugins skall implemmentera och sedan så läggs dll:en/dll:erna i en mapp som applikationen kollar av, och söker efter klassen som implemmenterar interfacet och använder sig på det sättet av den nya assemblien, kanske lägger till funktionaliteten i ett menyalternativ eller dylikt :).
Annars så är NHibernate ett exemplariskt exempel.
141 ms totalt · 3 externa anrop · v20260731065814-full.55e59744