以下是我尝试根据传递给该方法的参数获取XML文件内容的方法。我在if
条件
NullReference:对象引用未设置为对象的实例
代码:
public void restoreClientReceipt(string piClientName)
{
doc.Load(@"C:\Users\riyazahamed.angadi\Desktop\DeveloperAssignment\TestProject\Receipt.xml");
XmlNodeList allItems = doc.SelectNodes("/Receipt/clientName/Items");
foreach (XmlNode node in allItems)
{
if (node["clientName"].Attributes["NameOfClient"].Value == piClientName)
{
List<string> listOfSavedItems = new List<string>();
string str = node.Attributes["Name"].Value;
listOfSavedItems.Add(str);
Console.WriteLine(node["Items"]);
}
}
}
这是我的XML文件,我想从中获取父节点<clientName> <clientName/>
中的所有后续元素值
<?xml version="1.0" encoding="utf-8"?>
<Receipt>
<clientName NameOfClient="SAM">
<Items Name="Milk, Low fat, 1Liter(11.2each)(4) 44.8" />
<Items Name="Fish, Salmon (14each)(2) 28" />
<Items Name="Sum 72.8" />
</clientName>
</Receipt>
第二个问题是:我的项目中有一个名为OfferTest.dll的DLL,但它没有源代码。
要求是我必须动态加载DLL并检查实现接口之一的类;界面如下所示。
public interface IOffer
{
bool checkForOffer(string piName, int piCount, double piPrize, out double poDiscount);
bool checkForOffer(string piName, double piWeight, double piPrize, out double poDiscount);
}
也许从DLL我必须找到实现此接口的类(来自DLL)及其中定义的方法。
我对动态加载DLL没有任何了解。
答案 0 :(得分:0)
我的dll在我的项目中命名了OfferTest.dll,但它没有源代码 代码。
要求是我必须动态加载dll并检查 正在实施IOffer的类
var type = typeof(IOffer);
var types = Assembly.LoadFile("PathToYourAssembly").GetTypes()
.Where(p => type.IsAssignableFrom(p));