Ninject ile sınıfları statik yöntemlerle nasıl işlerim?Ninject ile sınıfları statik yöntemlerle nasıl işlerim?
Yani, C# içinde bir arabirimde statik yöntemleri olamaz ve Ninject arabirimleri kullanarak çalışır?
Kullanım durumum, kendisinin bir doldurulmamış örneğini oluşturmak için statik bir yönteme sahip olmasını istediğim bir sınıftır.
DÜZENLEME 1
Sadece nasıl Bazı inode sınıfları dönmek yaratacak, GetRootNodes() metodu içinde, TopologyImp sınıfında bir örnek eklenir? Bunları normal kod uygulamasıyla mı yapıyorum yoksa bir şekilde Ninject'i kullanır mıyım? Ama eğer kapsayıcıyı kullanmak için kullanırsam, o zaman IOC'nin bu kütüphane bilgisine sahip olmadım?
public interface ITopology
{
List<INode> GetRootNodes();
}
public class TopologyImp : ITopology
{
public List<INode> GetRootNodes()
{
List<INode> result = new List<INode>();
// Need code here to create some instances, but how to without knowledge of the container?
// e.g. want to create a few INode instances and add them to the list and then return the list
}
}
public interface INode
{
// Parameters
long Id { get; set; }
string Name { get; set; }
}
class NodeImp : INode
{
public long Id
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
}
public string Name
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
}
}
// Just background to highlight the fact I'm using Ninject fine to inject ITopology
public partial class Form1 : Form
{
private ITopology _top;
public Form1()
{
IKernel kernal = new StandardKernel(new TopologyModule());
_top = kernal.Get<ITopology>();
InitializeComponent();
}
}
Merhaba Ruben - Bu soruya bazı açıklamalar ekledim. Bu durumda INode örneklerini nasıl kendiniz oluşturursunuz? (YaniBu noktaya yorum yaptığım kodda bakın) - teşekkürler – Greg
@Greg: Bu iyi mi? –
Teşekkürler Ruben- Bu batığın içeri girmesine izin vermeliyim. Bu yaklaşımın gerçekten benim kodumda belirttiğim noktadaki sınıfları oluşturması üzerinde ne gibi somut faydalar sağlayacağını düşünmek üzereyim. Birini görüyor musun Tıpkı Niğde yaklaşımını takip ettiğin kodun diğer tüm alanlarında dikkat çeken IOC kavramını gerçekten kırmak ister miydi? – Greg