C#比较构造函数签名

C#比较构造函数签名,c#,generics,constructor,func,C#,Generics,Constructor,Func,如何比较构造函数方法? 假设我有一个类,它有3个构造函数 public class MyClass { private string myName; private string mySurname; public MyName {get;set;} public MySurname{get;set;} public MyClass() {} public MyClass(st

如何比较构造函数方法? 假设我有一个类,它有3个构造函数

public class MyClass
{
        private string myName;
        private string mySurname;
        public MyName {get;set;}
        public MySurname{get;set;}    
        public MyClass()
        {}
        public MyClass(string myName)
        {
           this.myName = myName;
        } 
} 
我使用了下面的函数,我想知道调用了哪个构造函数

public <T> GetBOData<T>(Func<T> Constructor) where T: Class
{
     if(Constructor signature already exist)
     {
        pull Cache value
     }
     ELSE
     {
       Invoke it and save the values into the cache.
     } 
}
public GetBOData(Func构造函数),其中T:Class
{
if(构造函数签名已存在)
{
拉缓存值
}
其他的
{
调用它并将值保存到缓存中。
} 
}
我的想法是,如果我已经在应用程序的某个地方调用了这个构造函数,请将其添加到字典中。 因此,如果我再次调用同一个构造函数,它将不再访问数据库。它只是提取字典值

目前使用MethodInfo作为标识符,但我意识到它会改变每个winform,因此我所有的调用都会命中数据库


提前谢谢。

听起来你想要一个国际奥委会框架,例如example@Johan,感谢您的输入,我正在寻找一个更简单的解决方案。每次调用构造函数时,我都可以添加一个GUID。使用IoC框架可能比编写一个更容易。字典存储在哪里?@Yohannes:它是以静态的主MDI形式存在的。谢谢