110,539
社区成员
发帖
与我相关
我的任务
分享
public class ServiceManager
{
private static readonly ServiceManager Instance = new ServiceManager();
private ServiceManager() { }
public static ServiceManager Current
{
get
{
return ServiceManager.Instance;
}
}
}
public class B
{
public B()
{
var Current=ServiceManager.Current;
}
}
public partial class BudgetClass
{
#region GetInstance
private static readonly object LockHelper = new object();
private static BudgetClass _instance;
public static BudgetClass Instance
{
get
{
lock (LockHelper)
{
return _instance ?? (_instance = new BudgetClass());
}
}
}
......
}
Assembly a1 = Assembly.LoadFile(path);//The path of A1.dll
B b = (B)a1.CreateInstance(typeof(B).FullName);
Assembly a1 = Assembly.LoadFile(path);//path is the filepath of A1.dll
BaseB b = (BaseB)a1.CreateInstance(typeName);//typeName is the name of class B
程序集A1
public class B:BaseB{}
程序集A2
public abstract BaseB{}
程序集A和程序集A1都引用了程序集A2。这样你在A中就可以去掉对程序集A1的引用,从而就不会出现你现在的问题。
当然还有一点要注意,在A中调用Assembly.Load方法加载包含有ViewModel的dll时,一定要保证只加载一次哦,否则View在寻找绑定的ViewModel时会出现问题。