相关疑难解决方法(0)

T4代码生成:当前项目中的访问类型

使用T4代码生成,是否可以访问当前项目中定义的类型?

例如,如果我有一个接口,我想将其实现委托给另一个类,即

interface IDoSomething {
    public void do_something();
}

class DoSomethingImpl : IDoSomething {
    public void do_something() {
        // implementation...
    }
}

class SomeClass : IDoSomething {
    IDoSomething m_doSomething = new DoSomethingImpl();

    // forward calls to impl object
    public void do_something() {
        m_doSomething.do_something();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想SomeClass用代码生成自动化呼叫转发; 这可能吗?

.net c# t4

17
推荐指数
1
解决办法
5015
查看次数

如何在C#中自动生成Decorator模式

我有一些接口,以及一个实现此接口的类,说:

interface IMyInterface
{
     void Func1();
     void Func2();
}

class Concrete : IMyInterface
{
     public virtual void Func1() { //do something }
     public virtual void Func2() { //do something }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个类,用一些特定的逻辑来装饰每个具体的类方法,在非生产环境中,在调用之前和之后执行.

class Decorator : Concrete
{ 
     public override void Func1() { Pre(); base.Func1; Post(); }
     public override void Func2() { Pre(); base.Func2; Post(); }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是有一种更简单的方法来自动生成这样的类,而不是在界面上使用反射并创建一个带有cs扩展名的文本文件?

c# design-patterns decorator

7
推荐指数
1
解决办法
3276
查看次数

标签 统计

c# ×2

.net ×1

decorator ×1

design-patterns ×1

t4 ×1