2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-06-27 05:23:13 +00:00

TemplateType.Wrapper Removed

This commit is contained in:
2022-09-06 23:29:44 +03:00
parent 77f7d1d545
commit 522f23212d
7 changed files with 107 additions and 137 deletions

View File

@ -5,9 +5,7 @@ using System.Text;
namespace Esiur.Resource.Template;
public enum TemplateType : byte
{
Unspecified,
Resource,
Record,
Wrapper,
Enum
}

View File

@ -350,7 +350,7 @@ public class TypeTemplate
};
getDependenciesFunc(template, list);
return list.ToArray();
return list.Distinct().ToArray();
}
@ -394,12 +394,12 @@ public class TypeTemplate
}
public bool IsWrapper { get; private set; }
public TypeTemplate(Type type, bool addToWarehouse = false)
{
if (Codec.InheritsClass(type, typeof(DistributedResource)))
templateType = TemplateType.Wrapper;
else if (Codec.ImplementsInterface(type, typeof(IResource)))
if (Codec.ImplementsInterface(type, typeof(IResource)))
templateType = TemplateType.Resource;
else if (Codec.ImplementsInterface(type, typeof(IRecord)))
templateType = TemplateType.Record;
@ -408,6 +408,8 @@ public class TypeTemplate
else
throw new Exception("Type must implement IResource, IRecord or inherit from DistributedResource.");
IsWrapper = Codec.InheritsClass(type, typeof(DistributedResource));
//if (isRecord && isResource)
// throw new Exception("Type can't have both IResource and IRecord interfaces");
@ -457,8 +459,7 @@ public class TypeTemplate
}
}
if (templateType == TemplateType.Resource
|| templateType == TemplateType.Wrapper)
if (templateType == TemplateType.Resource)
{
if (hierarchy.ContainsKey(MemberTypes.Method))
{