سؤال

ويقول لدي الجمعية DLL، التي تحتوي على الطبقة الذي تم إنشاؤه تلقائيا مع طريقتين:

public class AutoGeneratedClass
{
    public int DoSomething(bool forReal) { ??? }
    public void DoSomethingElse(string whatever) { ??? }
}

وأساليب يمكن أن يكون أي شيء، حقا. ما سبق هو مجرد التوضيح.

ما هو نوع من التعليمات البرمجية وأنا بحاجة لتوليد في مكان ؟؟؟ فوق أن يكون ذلك حزمة تلقائيا المعلمات للدعوة وإرسالها إلى وسيلة عام واحد على فئة أخرى، وهو ما ثم فعلا التعامل مع هذه الدعوة، وإرجاع النتيجة؟

public class GenericClass
{
    public ??? GenericHandler(???) { ??? }
}

وأعتقد أنا أبحث عن شيء يعمل على غرار Expression<Func<...>> في LINQ، الذي يجمع إلى بنية بيانات التي يمكن إرسالها في أي مكان وتفكيكها هناك.

وأود أن الحفاظ على أسلوب الأصلي نماذج أولية نفسه كما لو كانت طبيعية، وأساليب تنفيذها محليا، على الرغم من أن يحافظ الطالب من AutoGeneratedClass غير في حيرة.

إذا هذا لا يمكن أن يتحقق، ما هي خياراتي؟

وشكرا لك!

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

المحلول

هل لديك لفئة؟ الحياة ستكون أسهل كثيرا باستخدام واجهات - يمكنك بعد ذلك استخدام <لأ href = "http://msdn.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.aspx" يختلط = "نوفولو noreferrer "> System.Runtime.Remoting.Proxies.RealProxy أو ربما خلق نوع جديد حسب الطلب. أعتقد Rhino.Mocks يفعل هذا الأخير (باستخدام مكتبة للقيام رفع الأحمال الثقيلة) - وإذا كنت <م> يمكن استخدام واجهة، ورؤية كيف يتم تنفيذ Rhino.Mocks قد يكون نقطة انطلاق جيدة

نصائح أخرى

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

public partial class AutoGenerated
{
    public partial int ProcessDoSomething(bool forReal);
    public int DoSomething(bool forReal)
    {
        //some generated code against error conditions??
        return ProcessDoSomething(forReal)
    }

    .....
}

public partial class AutoGenerated
{
    public partial int ProcessDoSomething(bool forReal)
    {
        //call the generic handler...
    }
}

وانا ذاهب الى البقاء بعيدا عن التعبير جزء LINQ مثل من معالج عام منذ أنا لا تزال تعمل على التعبير grokking. لكن شيئا للنظر هو مدى صعوبة / سهلة وGenericClass الخاصة بك أن تكون للحفاظ على إذا كنت السير في طريق التعبير LINQ مثل؟

لقد كانت تجربتي أن عدد غير قليل من المطورين ليست مريحة مع المندوبين والعبارات لامبا. أنها تذلل (حرفيا) عند النظر في التعليمات البرمجية التي تستخدم التعبير.

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