Hi, I created an eventreceiver bind in a subsite list (MySource) item added. Also set the ListUrl=”subsite/lists/MySource” in Elements.xml. Am targeting to perform an insert to root site list (MyTarget) but am getting null exception error. Spent a lot of silly times…nothing makes me happy. Appreciate any thought.
public override void ItemAdded(SPItemEventProperties properties)
{using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists[“MyTarget”];
web.AllowUnsafeUpdates = true;
SPListItem item = list.Items.Add();
item[“Title”] = “SUGGESTION”;
item.Update();
web.AllowUnsafeUpdates = false;}
}}
Jonathan, you do not need to open web, you just can use properties.Web for that. So, your code can look like
public override void ItemAdded(SPItemEventProperties properties)
{
SPList list = properties.Web.Lists[“MyTarget”];
SPListItem item = list.Items.Add();
item[“Title”] = “SUGGESTION”;
item.Update();
}
Warning: don’t dispose SPWeb when you get it from SPItemEventProperties. It is a bit tricky when to dispose and when to not. You can find details by googling something like “When to dispose SPWeb”. You can start here.