在VS中,我引用了一个库的DLL。
我想使用我自己对库/ api使用的类的定义而不是库的定义。我想这样做是为现有类添加功能。
类扩展是不够的,因为我想在类中添加新的静态方法。
我有要重新实现的类的源代码。
有没有办法在我的项目中重新定义类并使用它而不是dll的类而不导入库/ dll的整个源。我宁愿不导入整个源代码,只需要修改我要修改的类。
实际上,我想要修改的类不是类而是结构,并且没有partial修饰符。
答案 0 :(得分:1)
尝试扩展方法:
namespace DLLNamespace
{
public struct TestStruct
{
public string Name { get; set; }
public void SetName(string name) { this.Name = name; }
}
}
namespace ProgramNamespace
{
public static class ExtensionMethods
{
public static void ReverseName(this DLLNamespace.TestStruct target)
{
target.Name = new string(target.Name.ToArray().Reverse().ToArray());
}
}
public class Program
{
static void Main(string[] args)
{
DLLNamespace.TestStruct ts;
ts.SetName("John");
ts.ReverseName();
Console.WriteLine(ts.Name);
}
}
}