public static void RunTest() { #region WRAPPED CLASS CONCRETIZATION WITH INHERITANCE FROM ABSTRACT CLASS ITypeConfig typeConfig = Core.FindOrCreateTypeConfig <IMyData, WrapperInterface>("MyType5"); typeConfig.AddStaticUtilsClass ( nameof(StaticMethodsTests.WrapperInterface.TheClass), typeof(MyDataUtils) ); typeConfig.SetAllowNonPublicForAllMembers(nameof(WrapperInterface.TheClass)); //typeConfig.SetPropMap //( // nameof(WrapperInterface.TheClass), // "GetTheFullName", // nameof(IMyData.GetFullName), // true); typeConfig.ConfigurationCompleted(); IMyData myData = Core.GetInstanceOfGeneratedType <IMyData>("MyType5"); myData.FirstName = "Joe"; myData.LastName = "Doe"; Assert.Equal("Joe Doe", myData.GetFullName()); #endregion WRAPPED CLASS CONCRETIZATION WITH INHERITANCE FROM ABSTRACT CLASS }
static void Main(string[] args) { #region WRAPPED CLASS CONCRETIZATION WITH INHERITANCE FROM ABSTRACT CLASS ITypeConfig <IMyData, NoClass, WrapperInterface> typeConfig = Core.FindOrCreateTypeConfig <IMyData, WrapperInterface>("MyType"); typeConfig.AddStaticUtilsClass ( nameof(WrapperInterface.TheClass), typeof(MyDataUtils) ); typeConfig.SetAllowNonPublicForAllMembers(nameof(WrapperInterface.TheClass)); //typeConfig.SetPropMap //( // nameof(WrapperInterface.TheClass), // "GetTheFullName", // nameof(IMyData.GetFullName), // true); typeConfig.ConfigurationCompleted(); IMyData myData = Core.GetInstanceOfGeneratedType <IMyData>("MyType"); myData.FirstName = "Joe"; myData.LastName = "Doe"; Console.WriteLine(myData.GetFullName()); #endregion WRAPPED CLASS CONCRETIZATION WITH INHERITANCE FROM ABSTRACT CLASS }
public ITypeConfig FindOrCreateEnumWrapperTypeConfig <T, EnumType>(Type staticEnumExtensionsType, bool allowNonPublic) { string className = typeof(EnumType).GetTypeAdapterClassName(typeof(T)); ITypeConfig enumWrapperTypeConfig = this.FindOrCreateTypeConfByTypeToImpl <T, SingleWrapperInterface <EnumType> >(className); if (!enumWrapperTypeConfig.ConfigurationHasBeenCompleted) { enumWrapperTypeConfig.AddStaticUtilsClass ( nameof(SingleWrapperInterface <EnumType> .TheWrappedType), staticEnumExtensionsType ); if (allowNonPublic) { enumWrapperTypeConfig.SetAllowNonPublicForAllMembers(); } } return(enumWrapperTypeConfig); }