Можно ли в .Net использовать позднее связывание к generic-классам - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Подскажите плиз, можно ли в .Net использовать позднее связывание к generic-классам? Собственно проблема такая: Имеется некий класс DataAccess.cs в сборке DAC, он

явно

реализует интерфейс IRepository<T> из той же сборки, напр.:
namespace DAC
{
   public class DataAccess<T>: IRepository<T>
   {
      public Guid IRepository<T>.Save() { ... }
   }
 
   // пример использования
   public void Test()
   {
      Entity e = new Entity("asd");
      DataAccess<Entity> dac = new DataAccess<Entity>();
      ((IRepository<Entity>)dac).Entity = e;
      ((IRepository<Entity>)dac).Save();
   }
}
Вопрос в том, можно ли сделать позднее связывание для такого generic-типа, т.е. чтобы как-то свзять данную сборку и выполнить Invoke для Save() ???

Решение задачи: «Можно ли в .Net использовать позднее связывание к generic-классам»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication16
{
    public interface IRepository<T>
    {
        void Save();
    }
 
    public class DataAccess<T> : IRepository<T>
    {
        public T Value { get; set; }
        
        void IRepository<T>.Save() 
        {
            Console.Write(Value.ToString());
        }
    }
 
 
    class Program
    {
        static void Main(string[] args)
        {
            string helloWorld = "Hello world!!!";
            DataAccess<string> dac = new DataAccess<string>();
            dac.Value = helloWorld;
            ((IRepository<string>)dac).Save();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы