Visual Studio .Net 2003, C# og auto-generering af declarations
Jeg har en Webapplication, skrevet i c#.net og med en del webforms - i disse webforms, når jeg dropper div. components, bliver der automatisk genereret declarations i min codebehind, der refererer til mit component på selve webformen i aspx-filen...
Dette er også fint nok, og meget nyttet så man ikke selv skal tampe alt det skidt ind, men i mit tilfælde vælger jeg at delcare dem som "internal" i stedet for "protected" objecter (da jeg så kan bruge dem som peoperties og lave nogle get/set-metoder til dem (og tilfredsstiller f.eks. FxCop på den måde)...
Dette virker også fint, men så snart jeg går i design-mode igen på min webform, laver den _nye_ instancer af dem i min code-behind, således jeg har mine egne "internal" og så nogle auto-generet "protected"... Dette er pisse irriterende, da jeg så får både compiler-warnings om dobbelt-instanser, samt konstant skal slette disse auto-genererede declarations...
Hvor kan jeg slå fra, så den ikke automatisk laver disse auto-ting i C#.net?
Jeg tror selv jeg har fundet en løsning på hvorfor den lavede egne instanser hele tiden;
Id på mit object på webform: MenuPlaceholder Id på mit object i codebehind (internal): menuPlaceholder Id på mit object i codebehind (protected, med properties: MenuPlaceholder
Jeg ændrede object-id'et på min webform til menuPlaceholder, og vupti overskrev den ikke min internal (som den jo heller ikke gjorde før - det var simpelthen to forskellige ID'er...)
Jeg følger bare Microsofts design-regler for kode nøje... En del af den virker meget underlig (især fordi designeren ikke understøtter Microsofts egen guidelines for kode) - f.eks. voilater det FxCops DesignRules som en error, hvis jeg ikke gør det sådan:
det er da noget værre flueknepperi... :P der er da flere steder i frameworket hvor at der er eksempler på public Fields... f.eks. er String.Empty ikke en property men et public field.
Reglen findes både i C++, Java og C#. Og er almindeligt accepteret.
Eksemplet med String.Empty modbeviser ikke noget da reglen ikke gælder for const/final/readonly felter.
Efter min bedste mening er .aspx.cs-.aspx lidt speciel og måske burde fxcop acceptere det for dem.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.