سؤال
هل هناك طريقة لإنشاء قيد فئة باستخدام 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);
لا تنتمي إلى StackOverflow