我有一个.net库dll,就像一个函数库.有许多静态类型和静态方法.
我需要运行一些初始化代码来设置库以供使用.
当程序集加载时,是否有办法确保运行特定方法?像AppDomain.AssemblyLoad之类的东西,但是从程序集本身自动调用.我在想,也许有可能会使用像AssemblyAttribute这样的东西?
目前我在静态构造函数中有这个初始化代码,但由于这是一个包含许多入口点的库,因此无法保证将使用此特定类型.
谢谢!
我在C#中有一个带有2个构造函数的泛型类:
public Houses(params T[] InitialiseElements)
{}
public Houses(int Num, T DefaultValue)
{}
Run Code Online (Sandbox Code Playgroud)
使用int作为泛型类型构造对象并传入两个int作为参数会导致调用"不正确"的构造函数(从我的角度来看).
例如Houses<int> houses = new Houses<int>(1,2)- 打电话给第二个construtor.将任何其他数量的int传递给构造函数将调用第一个构造函数.
除了删除params关键字并强制用户在使用第一个构造函数时传递T数组,还有什么方法吗?
DateTimeConverter类提供DateTime和string之间的转换.我还想支持DateTime和double之间的转换.
根据MSDN,我可以扩展DateTimeConverter类来执行此操作 - 请参阅MSDN DateTimeConverter
我创建了一个继承自DateTimeConverter的类,并为CanConvertTo,CanConvertFrom等提供了相应的覆盖.
当调用下面的代码时,如何确保框架使用我的DateTime转换器(DateTimeConverterEx)而不是BCL(DateTimeConverter)中提供的转换器?
DateTime dt = DateTime.Now;
// This line returns a DateTimeConverter which I don't want.
// Would like to get a DateTimeConverterEx.
TypeConverter tc = TypeDescriptor.GetConverter(dt);
double dbl = (double)tc.ConvertTo(dt, typeof(double));
Run Code Online (Sandbox Code Playgroud)
谢谢.