/// <summary> /// インナークラスを追加します。 /// </summary> /// <param name="klass">追加するクラス</param> internal void AddInnerClass(KecaknoahInteropClassInfo klass) { if (inners.Any(p => p.Name == klass.Name)) { throw new ArgumentException("同じ名前のインナークラスがすでに存在します。"); } inners.Add(klass); }
/// <summary> /// .NET上のKecaknoah連携クラスを登録します。 /// </summary> /// <param name="klass"></param> public void RegisterClass(KecaknoahInteropClassInfo klass) { classes.Add(klass); classReferences.Add(KecaknoahReference.CreateRightReference(new KecaknoahInteropClassObject(klass))); }
/// <summary> /// インナークラスを追加します。 /// </summary> /// <param name="klass">追加するクラス</param> internal void AddInnerClass(KecaknoahInteropClassInfo klass) { if (inners.Any(p => p.Name == klass.Name)) throw new ArgumentException("同じ名前のインナークラスがすでに存在します。"); inners.Add(klass); }
/// <summary> /// .NET上のKecaknoah連携クラスを登録します。 /// </summary> /// <param name="klass"></param> public void RegisterClass(KecaknoahInteropClassInfo klass) { classes.Add(klass); classReferences.Add(KecaknoahReference.CreateRightReference(new KecaknoahInteropClassObject(klass))); }
/// <summary> /// 指定した列挙体から同等の<see cref="KecaknoahInteropClassInfo"/>を作成します。 /// </summary> /// <param name="enumType">作成する列挙体の<see cref="System.Type"/>オブジェクト</param> /// <returns></returns> public static KecaknoahInteropClassInfo CreateFromEnum(System.Type enumType) { var type = enumType; var result = new KecaknoahInteropClassInfo(type.Name); var names = Enum.GetNames(type); foreach (var i in names) { var val = (int)Enum.Parse(type, i); result.AddConstant(i, val.AsKecaknoahInteger()); } return result; }