मैं यह पता लगाने की कोशिश कर रहा हूं कि आप C # एप्लिकेशन के अंदर रनटाइम पर एक .dll का आयात और उपयोग कैसे कर सकते हैं। असेंबली का उपयोग करते हुए। LoadFile () मैं dll को लोड करने के लिए अपना कार्यक्रम प्राप्त करने में कामयाब रहा (यह हिस्सा निश्चित रूप से काम कर रहा है क्योंकि मैं कक्षा का नाम ToString () के साथ प्राप्त करने में सक्षम हूं, हालांकि मैं 'आउटपुट' का उपयोग करने में असमर्थ हूं। मेरे कंसोल एप्लिकेशन के अंदर की विधि। मैं -dll को संकलित कर रहा हूं और फिर इसे मेरे कंसोल प्रोजेक्ट में स्थानांतरित कर रहा हूं। क्या CreateInstance और फिर विधियों का उपयोग करने में सक्षम होने के बीच एक अतिरिक्त कदम है?
यह मेरी DLL में कक्षा है:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
और यहां वह एप्लिकेशन है जिसे मैं DLL लोड करना चाहता हूं
namespace ConsoleApplication1
{
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll");
foreach(Type type in DLL.GetExportedTypes())
{
var c = Activator.CreateInstance(type);
c.Output(@"Hello");
}
Console.ReadLine();
}
}
}