سؤال

هل هناك طريقة لإنشاء قيد فئة باستخدام CodeDom.

لأنه عندما أستخدم شيئًا مثل

var method = new CodeMemberMethod();
var genericParam = new CodeTypeParameter("InterfaceType");
genericParam.Constraints.Add("class");
method.TypeParameters.Add(genericParam);

الكود الذي تم إنشاؤه يشبه

private InterfaceType GetImpl<InterfaceType>()
    where InterfaceType : @class
{
}

أفضل حل وجدته هو استخدام مسافة بيضاء بادئة قبل الفصل الدراسي

genericParam.Constraints.Add(" class");

ولكن يبدو أن هذا هو الحل البديل في أحسن الأحوال.

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

المحلول

ويبدو أنه لا توجد طريقة صارمة لتحديد هذا القيد.لا للقيد "الهيكل"..

بالنسبة ل"ت:new ()" القيد استخدم العلم HasConstructorConstraint

بالنسبة للباقي استخدم CodeTypeReference كما في هذا المثال ام اس دي ان.

نصائح أخرى

وأود أيضا أن استخدام الفضاء العرض صفر ("\x200Bclass") بدلا من الفضاء الطبيعي. ثم أنا استبداله في سلسلة النهائي مع سلسلة فارغة: .Replace("\x200B", string.Empty);

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