public IAsyncRepository <T> Repository <T>() { if (_repositories == null) { _repositories = new Dictionary <string, dynamic>(); } var type = typeof(T).Name; var currentType = typeof(EFRepository <>); if (_repositories.ContainsKey(type)) { return((IAsyncRepository <T>)_repositories[type]); } var reposityImplement = Assembly.GetAssembly(typeof(EFRepository <>)).GetTypes() .Where(TheType => TheType.IsClass && !TheType.ContainsGenericParameters && TheType.IsSubclassOfRawGeneric(typeof(EFRepository <>), type)) .FirstOrDefault(); if (reposityImplement is null) { var repositoryType = typeof(EFRepository <>); _repositories.Add(type, Activator.CreateInstance( repositoryType.MakeGenericType(typeof(T)), context) ); } else { _repositories.Add(type, Activator.CreateInstance(reposityImplement, context)); } return(_repositories[type]); }
private void InitEffects() { //init lists List <Type> typeList = new List <Type>(); m_effectsList = new List <AbstractEffect>(); m_serializedObjects = new List <SerializedObject>(); m_SerializedObject_effectMap = new Dictionary <SerializedObject, AbstractEffect>(); m_indexProperty_map = new Dictionary <int, List <SerializedProperty> >(); m_ActiveEffects = new List <SerializedObject>(); //find all Implementations of the abstract class "AbstractEffect" foreach (Type effect in Assembly.GetAssembly(typeof(AbstractEffect)).GetTypes() .Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(AbstractEffect)))) { typeList.Add(effect); } //create instances for each Effect && store the effect & the instance in a list foreach (Type currentType in typeList) { var effect = CreateInstance(currentType); m_effectsList.Add((AbstractEffect)effect); m_serializedObjects.Add(new SerializedObject(effect)); } m_EffectsDropDown = new string[m_effectsList.Count]; int i = 0; foreach (AbstractEffect effect in m_effectsList) { m_EffectsDropDown[i] = effect.ToString(); i++; } m_selectedEffectIndex = 0; m_executionOrder = 0; }
public static Type[] GetInheritedClasses(Type MyType) { //if you want the abstract classes drop the !TheType.IsAbstract but it is probably to instance so its a good idea to keep it. return(Assembly.GetAssembly(MyType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(MyType)).ToArray()); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("\r\n/**\r\n * Calling Type: "); #line 9 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CallingTypeName)); #line default #line hidden this.Write("\r\n * Type: "); #line 10 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TheType.FullName)); #line default #line hidden this.Write("\r\n * Assembly: "); #line 11 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TheType.Assembly.FullName)); #line default #line hidden this.Write("\r\n */\r\n"); #line 13 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" if (!String.IsNullOrEmpty(TheType.Namespace)) { #line default #line hidden this.Write("module "); #line 16 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TheType.Namespace)); #line default #line hidden this.Write(" {\r\n"); #line 17 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" } if (TheType.IsEnum) { #line default #line hidden this.Write(" export enum "); #line 22 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName)); #line default #line hidden this.Write(" {\r\n"); #line 23 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" var tp = TheType; var names = Enum.GetNames(tp); var values = Enum.GetValues(tp); for (var i = 0; i < names.Length; i++) { #line default #line hidden this.Write(" "); #line 30 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(names[i])); #line default #line hidden this.Write(" = "); #line 30 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Enum.Format(tp, values.GetValue(i), "D"))); #line default #line hidden this.Write(",\r\n"); #line 31 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" } } else { #line default #line hidden this.Write(" export interface "); #line 36 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(TypeName)); #line default #line hidden this.Write(" "); #line 36 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Extends)); #line default #line hidden this.Write(" {\r\n"); #line 37 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" var props = TheType.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly); foreach (var p in props) { #line default #line hidden this.Write(" "); #line 41 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ToCamelCase(p.Name))); #line default #line hidden this.Write("?: "); #line 41 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Translator.Translate(p.PropertyType))); #line default #line hidden this.Write(";\r\n"); #line 42 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" } #line default #line hidden #line 45 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" } #line default #line hidden this.Write(" }\r\n\r\n"); #line 50 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" if (!String.IsNullOrEmpty(TheType.Namespace)) { #line default #line hidden this.Write("}\r\n"); #line 54 "W:\Source\open\Timple.Tools.TypeScript\TypeScriptTools\Tools\TypeScript\Translators\PropertiesOnlyTemplate.tt" } #line default #line hidden return(this.GenerationEnvironment.ToString()); }
static async Task Main(string[] args) { var challengeType = typeof(Challenge); var types = Assembly.GetAssembly(challengeType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(challengeType)).ToArray(); Console.WriteLine("Available Challenges"); for (int i = 1; i <= types.Length; i++) { Console.WriteLine($"{i} - {types[i - 1].Name}"); } int selected = -1; do { Console.WriteLine("Choose a Challenge to Run"); var parsed = int.TryParse(Console.ReadLine(), out int result); if (parsed) { selected = result; } } while (selected == -1 || !IsBetween(0, types.Length - 1, selected - 1)); if (types[selected - 1].IsClass) { Console.WriteLine($"--------------Start Running {types[selected - 1].Name}-----------------------"); Console.WriteLine(Environment.NewLine); var challenge = (Challenge)Activator.CreateInstance(types[selected - 1]); await challenge.Run(); Console.WriteLine(Environment.NewLine); Console.WriteLine($"--------------Finishe {types[selected - 1].Name}-----------------------"); } }
static void Main(string[] args) { var challengeType = typeof(Challenge); var types = Assembly.GetAssembly(challengeType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(challengeType)).ToList(); foreach (var type in types) { if (type.IsClass) { Console.WriteLine($"--------------Running {type.Namespace} {type.Name}-----------------------"); Console.WriteLine(Environment.NewLine); var challenge = (Challenge)Activator.CreateInstance(type); } } }
public static Type[] GetInheritedClasses(Type MyType) { return(Assembly.GetAssembly(MyType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(MyType)).ToArray()); }
public void selectBoss() { Type[] chooseMob = Assembly.GetAssembly(typeof(Boss)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(Boss))).ToArray(); x = r.Next(chooseMob.Length); ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]); selectedBoss = (Boss)ctor.Invoke(new object[] { }); pbEnemy.BackgroundImage = selectedBoss.bossImage; p.enemyMaxHP = selectedBoss.bossMaxHP; p.newCoins = selectedBoss.coinValue; p.expAdd += 3; p.enemyHP = p.enemyMaxHP; lblPlayerHP.Text = "HP: " + p.playerHP + "/" + p.playerMaxHP; lblEnemyHP.Text = "HP: " + p.enemyHP + "/" + p.enemyMaxHP; }
//Function for selecting a random enemy public void selectMob() { Type[] chooseMob = Assembly.GetAssembly(typeof(Mob)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(Mob))).ToArray(); x = r.Next(chooseMob.Length); ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]); selectedMob = (Mob)ctor.Invoke(new object[] { }); pbEnemy.BackgroundImage = selectedMob.mobImage; }
//Function for selecting a random enemy depending on the stage rank public void selectMob() { if (p.stageRank == 1) { Type[] chooseMob = Assembly.GetAssembly(typeof(MobLowRank)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.GetInterfaces().Contains(typeof(MobLowRank))).ToArray(); x = r.Next(chooseMob.Length); ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]); selectedMob = (Mob)ctor.Invoke(new object[] { }); currentNewExp = 2; p.newCoins = selectedMob.coinValue - 1; } else if (p.stageRank == 2) { Type[] chooseMob = Assembly.GetAssembly(typeof(MobMidRank)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.GetInterfaces().Contains(typeof(MobMidRank))).ToArray(); x = r.Next(chooseMob.Length); ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]); selectedMob = (Mob)ctor.Invoke(new object[] { }); currentNewExp = 5; if (selectedMob != p.mobs.spaceGoblin) { p.newCoins = selectedMob.coinValue - 2; } else { p.newCoins = selectedMob.coinValue - 3; } } else if (p.stageRank == 3) { Type[] chooseMob = Assembly.GetAssembly(typeof(MobHighRank)).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.GetInterfaces().Contains(typeof(MobHighRank))).ToArray(); x = r.Next(chooseMob.Length); ConstructorInfo ctor = chooseMob[x].GetConstructor(new Type[0]); selectedMob = (Mob)ctor.Invoke(new object[] { }); currentNewExp = 8; if (selectedMob != p.mobs.crossbowMonke) { p.newCoins = selectedMob.coinValue - 3; } else { p.newCoins = selectedMob.coinValue - 5; } } pbEnemy.BackgroundImage = selectedMob.mobImage; }
public void Add(TheType item) { items.Add(item); }