// import will load any .NET assembly and they will be available inside the Lua context.
```
```
Calling instance methods:
To call instance methods you need to use the `:` notation, you can call methods from objects passed to Lua or to objects created inside the Lua context.
```csharp
state.DoString(@"
local res1 = obj:Func1()
local res2 = obj2:AnotherFunc (10, 'hello')
local res3 = client:DownloadString('http://nlua.org')
");
```
Calling static methods:
You can call static methods using only the class name and the `.` notation from Lua.
```csharp
state.DoString(@"
local res4 = SomeClass:StaticMethod(4)
");
```
Calling properties:
You can get (or set) any property using `.` notation from Lua.
```csharp
state.DoString(@"
local res5 = obj.MyProperty
");
```
All methods, events or property need to be public available, NLua will fail to call non-public members.
If you are using Xamarin.iOS you need to [`Preserve`](http://developer.xamarin.com/guides/ios/advanced_topics/linker/) the class you wan't use inside NLua, otherwise the Linker will remove the class from final binary if the class is not in use.
##Sendboxing##
There is many ways to sandbox scripts inside your application. I strongly recomend you to use plain Lua to do your sandbox.
You can re-write the `import` function before load the user script and if the user try to import a .NET assembly nothing will happen.