我应该在 class 库中的什么地方添加初始化代码?
Where do I add initialisation code in a class library?
我有一个使用 ValueInjecter 库的 class 库。在某些情况下,我需要创建自定义地图,但我不确定我需要在哪里调用 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.
}
在 class 库中,似乎没有直接的方法来 运行 'initialisation' 代码,所以我不确定如何处理这个问题。无法多次调用代码,因为尝试添加 duplicate/identical 映射会引发异常。
我应该把创建这些地图的代码放在哪里?
您可以将其添加到 static constructor。
public class SomeClass {
static SomeClass() {
InitialiseMappings();
}
}
我有一个使用 ValueInjecter 库的 class 库。在某些情况下,我需要创建自定义地图,但我不确定我需要在哪里调用 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.
}
在 class 库中,似乎没有直接的方法来 运行 'initialisation' 代码,所以我不确定如何处理这个问题。无法多次调用代码,因为尝试添加 duplicate/identical 映射会引发异常。
我应该把创建这些地图的代码放在哪里?
您可以将其添加到 static constructor。
public class SomeClass {
static SomeClass() {
InitialiseMappings();
}
}