ساخرا مساعدة؟ لا أستطيع أن أجد ما هي المشكلة

StackOverflow https://stackoverflow.com/questions/2261813

  •  20-09-2019
  •  | 
  •  

سؤال

ولقد واجهة definded مثل هذا:

public interface IDatabase{ void Get<TTypeToFetch> ();}

وعندما أحاول القيام به: Mockery mockery = new Mockery(); IDatabase db = mockery.NewMock<IDatabase>(); أحصل على الخطأ التالي:

<اقتباس فقرة>   

وSystem.TypeLoadException: System.TypeLoadException: التوقيع على الجسم وإعلان في تطبيق الأسلوب لا تتطابق

ما هو الخطأ؟ (أنا باستخدام Visual Studio 2008 مع nmock2) أرجو أن الجميع تعطيني جوابا، لا بد لي من الانتهاء من هذا في وقت قريب. شكر، لويزا

هل كانت مفيدة؟

المحلول

وأنا أعتقد أن هذا قد يكون هناك مشكلة مع NMock، ربما خلل. نوع IDatabase هو ليس عام، وذلك عند استدعاء وGet<T>، Ts مختلفة يمكن أن تستخدم في وقت التشغيل. ولكن عندما NMock يعمل على إنشاء وهمية، لا يبدو أن نفهم أن هذا هو الحال، وkablammo - كل توقيع طريقة مختلفة، اعتمادا على المعلمة النوع المتوفر

وحاول القيام بذلك بدلا من ذلك:

public interface IDatabase<T> {
  void Get<T>();
}

وبالإضافة إلى ذلك، يجب أن لا نوع Get يكون T، وليس void؟

نصائح أخرى

كان

ولي نفس استثناء مع واجهة بلدي. عندما أقوم بتغيير واجهة ليكون كل شيء العام يعمل على ما يرام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top