我有一個有幾個文本框的表單,您在文本框中輸入了一些值,然後當您按下提交時,它將值保存到文件中。但是,當我按下提交時,我得到以下異常。我已經將問題縮小到了InventoryMngr和CreateInventory代碼中的某些內容,但我不確定我在那裏做錯了什麼。System.MissingMethodException:無法創建接口的實例
System.MissingMethodException: Cannot create an instance of an interface.
at HomeInventory2.Services.Factory.GetService(String servicename) in C:\Users\Protego\documents\visual studio 2010\Projects\HomeInventory2\HomeInventory2\Services\Factory.cs:line 37
at HomeInventory2.Business.Manager.GetService(String name) in C:\Users\Protego\documents\visual studio 2010\Projects\HomeInventory2\HomeInventory2\Business\Manager.cs:line 14
at HomeInventory2.Business.InventoryMngr.Create(CreateInventory inv) in C:\Users\Protego\documents\visual studio 2010\Projects\HomeInventory2\HomeInventory2\Business\InventoryMngr.cs:line 19
at HomeInventory2.Form1.submitButton_Click(Object sender, EventArgs e) in C:\Users\Protego\documents\visual studio 2010\Projects\HomeInventory2\HomeInventory2\Form1.cs:line 52
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InventoryMngr
namespace HomeInventory2.Business
{
public class InventoryMngr : Manager
{
/// <summary>
/// persists the inventory information
/// </summary>
/// <param name="inv"></param>
public void Create(CreateInventory inv)
{
InventorySvc inventorySvc =
(InventorySvc)GetService(typeof(InventorySvc).Name);
inventorySvc.CreateInventory(inv);
}
}
}
CreateInventory
namespace HomeInventory2.Domain
{
[Serializable]
public class CreateInventory
{
/// <summary>
/// item category
/// </summary>
private string itemCategory;
public String ItemCategory
{
set
{
itemCategory = value;
}
get
{
return itemCategory;
}
}
/// <summary>
/// item properties
/// </summary>
private string itemProperties;
public String ItemProperties
{
set
{
itemProperties = value;
}
get
{
return itemProperties;
}
}
/// <summary>
/// item amount
/// </summary>
private string itemAmount;
public String ItemAmount
{
set
{
itemAmount = value;
}
get
{
return itemAmount;
}
}
/// <summary>
/// item value
/// </summary>
private string itemValue;
public String ItemValue
{
set
{
itemValue = value;
}
get
{
return itemValue;
}
}
}
}
InventorySvc是一個接口
namespace HomeInventory2.Services
{
public interface InventorySvc : IService
{
void CreateInventory(CreateInventory createinventory);
}
}
InventoryImpl
namespace HomeInventory2.Services
{
public class InventoryImpl: InventorySvc
{
/// <summary>
/// Creates an output files with the given inventory information written to it, serves as placeholder - this will be replaced with a database system
/// </summary>
/// <param name="createinventory"></param>
public void CreateInventory(CreateInventory createinventory)
{
try
{
FileStream fileStream = new FileStream
("CreateInventory.bin", FileMode.Create,
FileAccess.Write);
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(fileStream, createinventory);
fileStream.Close();
}
catch (ItemNotFoundException)
{
throw new ItemNotFoundException("Output not created - see logs");
}
}
}
}
是InventorySvc的一個接口? – mcalex
什麼GetService,你可以顯示code.Is InventorySvc一個接口 –