using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace MustHaveAttributes { [AttributeClass ( "Yordan Georgiev", "1.0.0" )] class Program { static int Main ( string [] args ) { bool flagFoundCustomAttrOfTypeAttributeClass = false; Console.WriteLine ( " START " ); // what is in the assembly Assembly a = Assembly.Load ( "MustHaveAttributes" ); Type[] types = a.GetTypes (); foreach (Type t in types) { object[] arrCustomAttributes = t.GetCustomAttributes ( true ); if (arrCustomAttributes == null || arrCustomAttributes.GetLength ( 0 ) == 0) { //DO NOT CHECK IN ExitProgram ( t, "Found class without CustomAttributes" ); } foreach (object objCustomAttribute in arrCustomAttributes) { Console.WriteLine ( "CustomAttribute for type is {0}", t ); if (objCustomAttribute is AttributeClass) flagFoundCustomAttrOfTypeAttributeClass = true; } if (flagFoundCustomAttrOfTypeAttributeClass == false) { //DO NOT CHECK IN ExitProgram ( t, "Did not found custom attribute of type AttributeClass" ); } Console.WriteLine ( "Type is {0}", t ); } Console.WriteLine ("{0} types found", types.Length ); //NOW REQUIREMENTS IS PASSED CHECK IN Console.WriteLine ( " HIT A KEY TO EXIT " ); Console.ReadLine (); Console.WriteLine ( " END " ); System.Environment.Exit ( 0 ); return 0; } static void ExitProgram ( Type t, string strExitMsg ) { Console.WriteLine ( strExitMsg ); Console.WriteLine ( "Type is {0}", t ); Console.WriteLine ( " HIT A KEY TO EXIT " ); Console.ReadLine (); System.Environment.Exit ( 1 ); } } //eof Program //This will fail even to compile since the constructor requires two params //[AttributeClass("OnlyAuthor")] //class ClassOne //{ //} //eof class ////this will not check in since this class does not have required custom ////attribute //class ClassWithoutAttrbute //{ } [AttributeClass("another author name " , "another version")] class ClassTwo { } //eof class [System.AttributeUsage ( System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple = true )] public class AttributeClass : System.Attribute { public string MustHaveDescription { get; set; } public string MusHaveVersion { get; set; } public AttributeClass ( string mustHaveDescription, string mustHaveVersion ) { MustHaveDescription = mustHaveDescription; MusHaveVersion = mustHaveVersion; } } //eof class } //eof namespace
Getting the Current TabItem when the Tab is not selected in WPF
-
[image: Banner]
This is a quick reminder to self on how to retrieve a TabItem from a WPF
TabControl *when the tab is not currently selected* because I ru...
1 week ago
No comments:
Post a Comment
- the first minus - Comments have to be moderated because of the spammers
- the second minus - I am very lazy at moderating comments ... hardly find time ...
- the third minus - Short links are no good for security ...
- The REAL PLUS : Any critic and positive feedback is better than none, so your comments will be published sooner or later !!!!