0
我在我的應用程序中使用存儲庫結構。如何通過C#中的反射創建接口類的引用#
我有一個接口類IDemoService
public interface IDemoService
{
bool CreateDemo(Demo demo);
bool UpdateDemo(Demo demo);
bool DeleteDemo(int id);
Demo GetDemo(int id);
Demo GetDemoServiceByName(string name);
IEnumerable<Demo> GetAllDemo();
void SaveRecord();
}
與使用的System.Reflection;我需要建立基準像
IDemoService iDemoService;
我到目前爲止已經試過這樣:
var iDemoServiceClass = asm.GetTypes().Where(p =>
p.Namespace == nameSpace &&
p.Name == "IDemoService"
).ToList();
Type iDemoServiceClassType = iDemoServiceClass.FirstOrDefault();
var className = iDemoServiceClassType.Name;
var functionName = "Get" + iDemoServiceClassType + "ByName";
MethodInfo getMethod = demoServiceClassType.GetMethod(functionName);
var instanceCreate = Activator.CreateInstance(iDemoServiceClassType);//, null); //here I want to create reference instead instance
ParameterInfo[] parameters = getMethod.GetParameters();
if (parameters.Length > 0)
{
object[] parametersArray = new object[] { "RequiredDemo" };
var demoObj = getMethod.Invoke(instanceCreate, parametersArray);
}
既然是接口,因此無法創建實例,但基準是可能的。那麼,是否有可能使用反射或其他方式創建參考? 請幫助我正確的方式。感謝提前:D
引用allways指向一個類的實例。你不能「創建一個參考」。僅創建實現接口的類的實例。 – HimBromBeere
是不可能創建像IDemoService iDemoService的引用;通過反思?我的問題只在這裏 –
你總是需要一個參考點指向的實例。什麼應該「創造一個參考」呢?指向沒有?沒有任何東西指向沒有任何東西,所以參考是與一個類的實際對象有關的。你必須創建一個實現你的接口的類的實例。 – HimBromBeere