Question: We are trying to use early bound types in a CRM2011 plugin. To enable this it appears we need to either add a `ProxyTypesBeavior()`, or call `EnableProxyTypes()`. However, both of these properties apply to an `OrganizationServiceProxy` class, and do not exist on the `IOrganizationService` interface.

So if we are using the following code to get the organization service, how are we meant to obtain a proxy class to set the above properties on?

```
var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.UserId);

```

Answer: 
For those of you using CRM Online, the reflection solution won't work since you're stuck in sandbox mode.

The following solution using the IProxyTypesAssemblyProvider interface (suggested by Pavel Korsukov) worked for me ([source](http://social.microsoft.com/Forums/en-US/bc7e93d4-1b36-4e21-9449-f51b67a2e52c/crm-2011-online-early-binding-plugin?forum=crmdevelopment "Source")).

```
var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));

var proxyTypesProvider = factory as IProxyTypesAssemblyProvider;
if (proxyTypesProvider != null)
{
    proxyTypesProvider.ProxyTypesAssembly = typeof(Xrm.XrmServiceContext).Assembly;
}
// Use the factory to generate the Organization Service.
var service = factory.CreateOrganizationService(context.UserId);

```
Write like this,

```
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

```