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();
}
}