سؤال

أنا أتطلع إلى تنفيذ بعض القوالب في تطبيق ويب وأردت الاستفادة منها ASP.NET الصورة الضوابط قالب.ومع ذلك ، لا أريد الاعتماد على المادية .ملفات أسكس ، أو فيرتوالباثبروفيدر من أجل تحميل القوالب.

أريد أن أكون قادرا على تحميل القوالب من قاعدة بيانات أو مخزن بيانات آخر (في الذاكرة?). هل هناك أي تنفيذ لطريقة لوادتمبلات () التي ترجع إيتمبلات نظرا لتمثيل سلسلة من .قالب أسكس?

ان لم, كيف أذهب عن كتابة واحدة?

لمعلوماتك ، كينتيكو لديه ميزة مماثلة ، لكنها تعتمد على VirtualPathProvider من أجل استخدام LoadTemplate() على ال TemplateControl صف دراسي.باستخدام هذه الطريقة ، يمكنهم تحميل القوالب (يسمونها تحويلات) المخزنة في قاعدة البيانات.

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

المحلول

نعم, VirtualPathProvider من المحتمل أن تكون الطريقة التي تريد استخدامها ، إذا كانت السلسلة أو قاعدة البيانات هي المصدر الذي تريد استخدامه.(هناك أيضا مولدات التعليمات البرمجية التي يمكن أن تنبعث منها التعليمات البرمجية ، ولكن عادة ما يتم استخدامها عند بناء التعليمات البرمجية ديناميكيا-لا يتم تحميلها من مصدر خارجي كما في حالتك.)

أنت لا تذكر لماذا كنت لا تريد استخدام فيرتوالباثبروفيدر على الرغم من.هل يرجع ذلك إلى عدم الرغبة في, أو لا يمكن بسبب بعض المتطلبات الخاصة لديك في حالة معينة?

وأخيرا ، إذا كان "يبدو تافهة" لتحميل وتجميع التعليمات البرمجية بشكل حيوي ، ثم كنت لا تعرف ما كل نظام صافي كله يجب القيام به قبل أن تتمكن من تشغيل التعليمات البرمجية الديناميكية-توليد التجمع ، تجميع و جيت ، سياقات التطبيق ، فئة/عضو اسم القرار ، رمز الأمن ، الخ.ربما كنت قد مجرد مدلل مع مدى سهولة جعلت صافي القيام بمهام معقدة أخرى.;-)

نصائح أخرى

أواجه مشكلة مماثلة.ومع ذلك ، فإن برنامج VirtualPathProvider عبارة عن الكثير من السباكة التي لا يمكن تنفيذها لتحقيق مثل هذا المكاسب الصغيرة - ناهيك عن أنه يبدو أنه من المحتمل أن يكون تطبيقه محفوفًا بالمخاطر الأمنية.لقد وجدت حلين محتملين:

1) استخدم التفكير للوصول إلى ما تريد: Genacodicetagpre

2) استخدم طريقة حل مخترقة إلى حد ما: Genacodicetagpre

أدير بصراحة أن أيًا منهما ليس حلاً رائعًا.من الناحية المثالية ، ستكون هناك طريقة في .Net Framework لهذا النوع من الأشياء.شيء من هذا القبيل: Genacodicetagpre

سيخفف ذلك من الحاجة الكاملة لتطبيق برنامج VirtualPathProvider.ربما سنرى ذلك في ASP.NET vNext :-)

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