[英]How to convert an object to a wrapper object in Ninject & C#?
我有一些沒有接口的第三方類的包裝器類,我需要在相當牢固的C#代碼塊中引用它。
目前,我有一個靜態函數將實例轉換為包裝器實例。
示例代碼。
class A
{
public string Name;
}
interface IAWrapper
{
string Name { get; set; }
}
class AWrapper : IAWrapper
{
private A Instance;
public AWrapper(A instance)
{
Instance = instance;
}
public string Name
{
get
{
return Instance.Name;
}
set
{
Instance.Name = value;
}
}
}
我想要一個像
var a = new A() {Name = "bob"};
var wrapped = kernel.wrap<IAWrapper>(a);
wrapped
AWrapper
將是AWrapper
一個實例,並為Instance
傳遞a
Ninject有辦法做到嗎? 要請求包裝器類接口,需要包裝實例,並取回包裝器類?
(我很抱歉,我敢肯定有很多清楚的方法可以提出這個問題,但是如果我知道如何更好地提出這個問題,我也可能會知道答案。:))
假設內核已經綁定,則可以使用ConstructorArgument
指定構造函數參數。 構造函數參數的名稱是該類的第一個參數。
var a = new A() { Name = "bob" };
var instance = new Ninject.Parameters.ConstructorArgument("instance", a);
var wrapper = kernel.Get<IAWrapper>(instance);
wrapped
AWrapper
地方是AWrapper
一個實例,它在構造函數中傳遞a
instance
參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.