.NET
- Accesarea prin reflection a unei metode statice dintr-o clasa parinte
MethodInfo mi = type.GetMethod("GetId", BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static);
- Implementarea IPrincipal
- MSDN Article: How to implement IPrincipal
- http://msdn.microsoft.com/en-us/library/aa302401.aspx
- Assembly-uri care nu se copiaza in directorul dorit
- Daca assembly-ul A il referentiaza pe B, iar B il referentiaza pe C, dar nu foloseste nici unul din membrii lui C, atunci C nu va fi copiat in directorul lui A, chiar daca e setat cu Copy Local pe true. Pentru a rezolva problema, trebuie folosit un membru al C in assembly-ul B (si prin folosit vreau sa spun folosit, adica fara warning-uri ca nu e folosit - daca sunt warning-uri, atunci va fi ignorat in caz de compilare in Release).
- DateTime.ToString
- Daca trebuie specificat un format astfel incat sa nu intoarca nimic, atunci incearca dateTime.ToString("\"<text ad-literam>\"");
- Generic constraints
- struct, class
- new()
- base class
- Schimbarea unui tip in altul
- TypeConverter
- Convert.
- Pastrarea de context static particular pe fiecare thread
- Se foloseste atributul ThreadStatic.
- Sunt niste probleme cu ThreadStatic pe web: http://integralpath.blogs.com/thinkingoutloud/2005/03/threadstatic_fu.html si http://www.hanselman.com/blog/ATaleOfTwoTechniquesTheThreadStaticAttributeAndSystemWebHttpContextCurrentItems.aspx
- Redirectarea unei referinte cu o versiune veche catre o referinte noua, fara recompilare
- namespace-ul e obligatoriu
- http://msdn.microsoft.com/en-us/library/7wd6ex19(vs.71).aspx
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral"/> <bindingRedirect oldVersion="2.0.0.4000" newVersion="2.0.1.4000"/> </dependentAssembly> </assemblyBinding> </runtime>
- Cum sa ascunzi o metoda a unei librarii intr-o versiune noua
- [EditorBrowsable(EditorBrowsableState.Never), Obsolete("Expect has been renamed to Setup.", false)]
- Asa nu va mai aparea in Intellisense, si utilizatorul va primi si un mesaj cum ca e obsolete.
- Query-uri XPath in xml-uri care folosesc namespace-uri.
- Definesc namespace-urile intr-un XmlNamespaceManager, pe care il folosesc apoi in document.SelectNode
var document = new XmlDocument(); document.LoadXml(xml); var namespaceManager = new XmlNamespaceManager(document.NameTable); namespaceManager.AddNamespace("ogc", "http://www.opengis.net/ogc"); var valueNode = document.SelectSingleNode("ogc:Filter/ogc:And/ogc:PropertyIsEqualTo[ogc:PropertyName='incidentId']/ogc:Literal", namespaceManager);
- Crearea unui serviciu Windows
- Dupa ce am creat proiectul pentru serviciu, intru in design mode pe serviciu -> click dreapta pe designer -> Add Installer
- Intuitive, huh?
- Servicii Windows
- Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
- Extragerea configuratiei pentru log4net in alt fisier
- <add key="log4net.Config" value="config\log4net.config"/>
- Logarea numelui masinii cu log4net
- %property{log4net:HostName}
- http://stackoverflow.com/questions/162810/how-do-you-log-the-machine-name-via-log4net
- Custom configSections
- Pot defini un sectionGroup, continand mai multe sectiuni de tip SingleTagSectionHandler (sunt mai multe SectionHandler-e disponibile in System.Configuration)
- Obtin sectiunea respectiva cu ConfigurationManager.GetSection("email/incoming") - pentru SingleTagSectionHandler va intoarce un HashTable cu cheile si valorile asociate lor.
- Un articol interesant: http://www.codeproject.com/KB/dotnet/mysteriesofconfiguration.aspx
<sectionGroup name="email"> <section name="incoming" type="System.Configuration.SingleTagSectionHandler"/> ... </sectionGroup> <email> <incoming server="[server]" port="110" username="[username]" password="[password]" /> </email>
- Extragerea configuratiei pentru o sectiune custom in alt fisier
- Se foloseste configSource, dar nu merge pe grupuri de sectiuni, ci doar pe sectiuni.
- https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=150061&wa=wsignin1.0
<email> <incoming configSource="config\incoming-email.config" /> <outgoing configSource="config\outgoing-email.config" /> </email>
- NVelocity - cai absolute pentru template-uri (pot fi si relative)
- props.SetProperty("file.resource.loader.path", "c:\\templates");
- http://forum.castleproject.org/viewtopic.php?t=3594&sid=d6b17c3a4e252ebba1b6bfdc03c0dc29
- Regex.Replace - backreferences
Regex.Replace("Hello World!", "(?<vowel>[aeiouAEIOU])", "_${vowel}_")
- Alternativa win client la HttpContext.Current
- CallContext.GetData/SetData.
- Enumeration classes
page revision: 21, last edited: 12 Apr 2011 09:50