小编alp*_*pha的帖子

MEF构造函数注入

我试图找出MEF的构造函数注入属性.我不知道如何告诉它加载构造函数的参数.

这是我正在尝试加载的属性

[ImportMany(typeof(BUsers))]
public IEnumerable<BUsers> LoadBUsers { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是我用来导入程序集的代码.

try
{
    var catalog = new AggregateCatalog();
    catalog.Catalogs.Add(new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly()));
    catalog.Catalogs.Add(new DirectoryCatalog("DI")); 
    var container = new CompositionContainer(catalog);
    container.ComposeParts(this);
}
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试加载的类

[Serializable]
[Export(typeof(BUsers))]
public class EditProfile : BUsers
{
    [ImportingConstructor]
    public EditProfile(string Method, string Version)
    {            
        Version = "2";
        Action = "Edit";
        TypeName = "EditProfile";
    }
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection mef constructor-injection

39
推荐指数
2
解决办法
4万
查看次数

C#在运行时使用泛型创建对象

在以下示例中,我可以通过字符串动态创建对象; 但是,我无法获得BASE类的公共方法.我无法将obj转换为BASE因为我不知道在设计时将使用什么泛型.在运行时这样做的任何建议都会很好.

项目A包含A类{T,J>:BASE {T,J>
项目B包含B类{T,J>:BASE {T,J>

Project C包含Class BASE {T,J>
public virtual control {T,J> item

Project Windows Form
cmdGo_Click事件

string dll = textbox1.text // ex"ProjectA.dll"
string class = textbox2.text // ex"A`2 [enuT,enuJ]"
object obj = activator.createinstancefrom(dll,class)

c# generics runtime activator

0
推荐指数
1
解决办法
4368
查看次数