C# 我应该在类库中的何处添加初始化代码?

C# 我应该在类库中的何处添加初始化代码?,c#,valueinjecter,C#,Valueinjecter,我有一个类库,可以使用这个类库。在某些情况下,我需要创建自定义映射,但我不确定需要将调用放到哪里Mapper.AddMap() 如果我在一个具有主入口点的应用程序中使用它,我可以这样做: public static void Main(string[] args) { InitialiseMappings(); } void InitialiseMappings() { Mapper.AddMap<TypeA, TypeB>(src = > {

我有一个类库,可以使用这个类库。在某些情况下,我需要创建自定义映射,但我不确定需要将调用放到哪里
Mapper.AddMap()

如果我在一个具有主入口点的应用程序中使用它,我可以这样做:

public static void Main(string[] args)
{
    InitialiseMappings();
}

void InitialiseMappings()
{
    Mapper.AddMap<TypeA, TypeB>(src = > { 
        // Mapping code... 
    });

    Mapper.AddMap<TypeC, TypeD>(src = > { 
        // Mapping code... 
    });

    // etc.
}
publicstaticvoidmain(字符串[]args)
{
InitialiseMappings();
}
void InitialiseMappings()
{
AddMap(src=>{
//映射代码。。。
});
AddMap(src=>{
//映射代码。。。
});
//等等。
}
在类库中,似乎没有一种直接的方式来运行“初始化”代码,所以我不确定如何实现这一点。无法多次调用该代码,因为尝试添加重复/相同的映射会引发异常

我应该将创建这些地图的代码放在哪里?

您可以将其添加到


在使用映射的类的静态构造函数中?如果映射在多个类中使用,我该怎么办?我不确定问题出在哪里。静态构造函数中的代码只运行一次。在那个地方创建映射一次。是的,我理解。我在问,如果一个特定的映射在两个不同的类中使用,我该怎么办,因为我不能创建它两次。你可以从类B的静态构造函数调用类a中的静态方法。这样,如果另一个还没有运行,一个会触发另一个。
public class SomeClass {
    static SomeClass() {
        InitialiseMappings();
    }
}